ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Regular Expression
    Python 2020. 9. 11. 19:40

     

    문법 설명 예시
    . 임의의 한 문자가 존재 .{3} : 문자가 3개 존재
    ? 바로 앞의 문자가 존재하거나 존재하지 않음 \d? : 숫자가 하나 있거나 없어야 함
    * 바로 앞의 문자가 존재하지 않거나 무한대로 존재 \d* : 숫자가 없거나 하나 이상
    + 바로 앞의 문자가 한번 이상 존재 \d+ : 숫자가 하나 이상
    ^ 바로 뒤의 문자로 문자열이 시작해야됨 ^abc : abc로 시작해야됨
    $ 바로 앞의 문자로 문자열이 끝나야됨 xyz$ : xyz 로 끝나야됨
    {숫자} 숫자만큼 반복 \d{3} : 숫자가 3개 있어야됨
    {숫자,} 숫자 이상만큼 반복  
    {숫자1, 숫자2} 숫자1 이상, 숫자2 이하 만큼 반복 \d{3,5} : 숫자가 3|4|5 개 여야됨
    (문자열) 문자나 문자열을 묶음 grouping에 사용, e.g. group(1)
    [문자1, 문자2] 대괄호 안에 있는 문자들이 존재하는지 검색 [Pp]ython : 'Python' or 'python'
    [^] ^기호 바로 뒤의 문자가 존재하지 않음 [^aeiou] : 소문자모음이 아닌 문자열
    [:alpha:] 알파벳만 검색  
    [:alnum:] 알파벳, 숫자만 검색  
    [:digit:] 숫자만 검색  
    [:upper:] 대문자만 검색  
    \\ \ (역슬래쉬) 자체를 검색  
    \d 모든 숫자를 검색, [0-9]와 동일  
    \D 숫자를 제외한 모든 문자를 검색  
    \s 공백을 검색  
    \S 공백이 아닌 문자를 검색  
    \w 숫자 또는 문자를 검색  
    \W 숫자 또는 문자가 아닌것을 검색  
    | OR  
    [A-Z] 모든 대문자알파벳을 검색 aaa|bbb : aaa 또는 bbb
    [1-10] 1-10 까지 숫자들을 검색  

     

    Examples

    1. | (OR)

    batRegex = re.compile(r'Bat(man|mobile|copter|bat)')
    
    mo = batregex.search('Batmobile lost a wheel')
    
    mo.group(0)  # 'Batmobile'
    mo.group(1)  # 'mobile'

     

    2. Optional Matching with the Question Mark

    batRegex = re.compile(r'Bat(wo)?man')  # Search Batman or Batwoman only

     

    3. Matching Zero or More with the Star

    batRegex = re.compile(r'Bat(wo)*man')  # Search Batman, Batwoman, Batwowoman, ...
    

     

    4. Matching One or More with the Plus

    batRegex = re.compile(r'Bat(wo)+man')  # Search Batwoman, Batwowoman, ...

     

    5. Matching Specific Repetitions with Curly Brackets

    haRegex = re.compile(r'(Ha){2,}')  # Search HaHa, HaHaHa, ...

     

    6. Greedy and Nongreedy Matching

    - greedy matching

    greedyHaRegex = re.compile(r'(Ha){3,5}')
    greedyHaRegex.search('HaHaHaHaHa').group(0)  # 'HaHaHaHaHa'

    - non-greedy matching

     

    [NOTE] 패턴 앞에 r 을 붙이는것은 regular expression 이라는것을 명시해주는것이다. r'[pattern]'

    'Python' 카테고리의 다른 글

    matplotlib 한글 폰트 적용  (0) 2020.09.11
    jupyter notebook에 가상환경 kernel 추가하기  (0) 2020.09.11
    Github tutorial  (0) 2020.09.10

    Comments