많이 쓰는 정규표현식 종류
- 기본 패턴:
- .: 어떤 문자 하나를 나타냅니다.
- *: 앞의 패턴이 0번 이상 반복됨을 나타냅니다.
- +: 앞의 패턴이 1번 이상 반복됨을 나타냅니다.
- ?: 앞의 패턴이 0번 또는 1번 나타남을 나타냅니다.
- 문자 클래스:
- [...]: 대괄호 안에 있는 어떤 문자든 하나와 일치합니다. 예를 들어, [aeiou]는 소문자 모음 문자와 일치합니다.
- 특수 문자:
- \d: 숫자에 일치합니다.
- \w: 단어 문자 (알파벳, 숫자, 밑줄)에 일치합니다.
- \s: 공백 문자 (공백, 탭, 줄 바꿈)에 일치합니다.
- 반복자:
- {n}: 앞의 패턴이 n번 나타남을 나타냅니다.
- {n,}: 앞의 패턴이 최소한 n번 나타남을 나타냅니다.
- {n,m}: 앞의 패턴이 n번 이상, m번 이하 나타남을 나타냅니다.
- 앵커:
- ^: 문자열의 시작 부분과 일치합니다.
- $: 문자열의 끝 부분과 일치합니다.
- 그룹화:
- (...): 괄호로 묶인 부분은 그룹으로 처리됩니다.
- OR 연산자:
- |: OR 조건을 나타냅니다. 예를 들어, cat|dog는 "cat" 또는 "dog"와 일치합니다.
- 전후방 탐색:
- (?=...): 전방 탐색 (lookahead)으로, 뒤에 패턴이 일치해야 합니다.
- (?<=...): 후방 탐색 (lookbehind)으로, 앞에 패턴이 일치해야 합니다.
- 문자 클래스 단축 기호:
- \d: 숫자와 일치
- \D: 숫자가 아닌 것과 일치
- \w: 단어 문자와 일치
- \W: 단어 문자가 아닌 것과 일치
- \s: 공백 문자와 일치
- \S: 공백 문자가 아닌 것과 일치
사실 이렇게 하나하나 뜻보다 전화번호, 이메일, 글자수 등 아예 뭉탱이로 되어있는 애들을 쓰는 경우가 많다
예를 들어
r'[A-Z]' : 대문자를 찾는 패턴
r'\w+' : 글자 또는 숫자(단어 문자)를 찾는 패턴
r'c.t' : 'c'로 시작하고 't'로 끝나는 세 글자의 단어 찾기
r'\bseee\w*' : \b는 단어 경계, seee로 시작하는 모든 단어 찾기
r'^(\d{3}) \d{3}-\d{4}$' : 예) (123) 456-7890 형식인지 확인
r'^[\w.-]+@[\w.-]+.\w+$' :예: "example@email.com"형식인지 확인
※서두에 붙인 r 접두어는 파이썬에서 원시(raw) 문자열을 나타낸다
정규표현식은 백슬래시()가 많이 사용되는데, 백슬래시가 특수 문자로 해석되는 것을 방지하고자 r을 붙이는 것이 좋다고 한다.
※
pattern = "\\d+"
pattern = r"\d+"