1.문자 리터럴
- 단순히 일치해야 하는 문자들.
예: a는 문자 'a'와 일치합니다.2.메타 문자
- 특별한 의미를 가지는 문자들.
예: . 는 임의의 한 문자와 일치합니다.3.문자 클래스
- 대괄호 [ ] 안에 있는 문자들 중 하나와 일치합니다.
예: [abc]는 'a', 'b', 'c' 중 하나와 일치합니다.4.수량자
- 앞에 있는 요소가 나타나는 횟수를 지정합니다.
- *: 0회 이상 (예: a*는 'a'가 0번 이상 반복됨)
- +: 1회 이상 (예: a+는 'a'가 1번 이상 반복됨)
- ?: 0회 또는 1회 (예: a?는 'a'가 0번 또는 1번 반복됨)
- {n}: 정확히 n회 (예: a{ 3 }는 'aaa'와 일치함)
- {n,}: n회 이상 (예: a{2,}는 'aa' 이상과 일치함)
- {n,m}: n회 이상 m회 이하 (예: a{2,5}는 'aa', 'aaa', 'aaaa', 'aaaaa'와 일치함)
5.경계
- ^: 문자열의 시작
(예: ^a는 'a'로 시작하는 문자열)- $$: 문자열의 끝
(예: a$는 'a'로 끝나는 문자열)6.그룹화와 캡처
- 괄호 ( )를 사용하여 그룹화하고 캡처할 수 있습니다.
예: (abc)+는 'abc'가 1번 이상 반복되는 경우를 찾고, 'abc'를 캡처합니다.7.논리 OR
- 파이프 |를 사용하여 OR 조건을 설정합니다.
예: a|b는 'a' 또는 'b'와 일치합니다.
이메일 주소 찾기:
문자열: test.email@example.com, first.last@domain.co.uk
정규표현식: r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}'
전화번호 찾기:
문자열: 123-456-7890, 987-654-3210
정규표현식: r'\d{3}-\d{3}-\d{4}'
날짜 찾기:
문자열: 2023-01-01, 1999-12-31
정규표현식: r'\d{4}-\d{2}-\d{2}'
IP 주소 찾기:
문자열: 192.168.0.1, 10.0.0.1
정규표현식: r'\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b'
URL 찾기:
문자열: http://example.com, https://www.example.com/path
정규표현식: r'(http|https)://[a-zA-Z0-9.-]+.[a-zA-Z]{2,}(/[a-zA-Z0-9._%+-])'