正規表現


https://www.youtube.com/watch?v=dTDoTR0MXjU
この文章はyoutube zocodingの正規表現ビデオを見て勉強した内容をまとめた.
正規表現の使用方法
Pythonに正規表現をサポートするreモジュールをインポートします.
import re
p = re.compile("ab*")
使用する正規表現re.compile関数の引数として使用すると、モードオブジェクトが返されます.このモードオブジェクトを使用して、必要な文字列を比較できます.
モードオブジェクトを使用する方法は4種類あります.

Dot(.)

a.b
  • は、改行以外のすべての文字と一致する
  • の上の例では、「aab」「a 4 b」は
  • と一致する.
  • 「abc」と「a」と「b」の文字の間に任意の文字が必要である上記の正規表現が一致しない

    繰り返し(*)

    ca*t
  • 「ct」は「a」を0回繰り返し、
  • を組み合わせる
  • 「cat」は「a」が0回以上繰り返す組み合わせ(1回)
  • 「caat」は「a」が0回以上繰り返すコーディネート(3回)
  • 繰り返し(+)

    ca+t
  • 「ct」は「a」を0回繰り返し、
  • に一致しない.
  • 「cat」は「a」が1回以上繰り返すコーディネート(1回)
  • 「caat」は「a」が1回以上繰り返すコーディネート(3回)
  • 繰り返し({m,n})

    ca{2}t
  • 「cat」は「a」を1回だけ繰り返し、
  • に一致しない.
  • 「caat」は「a」を2回繰り返し、
  • を組み合わせた.
    中間にCOMMERがあるca{2,5}tは、中間aが2以上5個以下であることを示す.
    import re
    # match
    p = re.compile('[a-z]+') # a부터 z까지 어떤 문자열 반복(+)패턴객체 생성
    m = p.match("python") # 검사하고자하는 문자열
    print(m) # 매치됨. 
    m = p.match("3 python") # 이 경우는 매치되지 않음 None
    print(m)
    
    # search
    p = re.compile('[a-z]+')
    m = p.search("python") # 검사하고자하는 문자열
    print(m) # 매치됨. 
    m = p.search("3 python") # find 해주기 때문에, 일치하는 곳의 부분 찾아 반환
    print(m)