티스토리 뷰
정규 표현식
- 메타 문자 : 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자
- 문자 클래스 [ ]
정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다.
ex)
- "a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치
- "before"는 정규식과 일치하는 문자인 "b"가 있으므로 매치
- "dude"는 정규식과 일치하는 문자인 a, b, c 중 어느 하나도 포함하고 있지 않으므로 매치되지 않음
cf) [ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From - To)를 의미한다. 예를 들어 [a-c]라는 정규 표현 식은 [abc]와 동일하고 [0-5]는 [012345]와 동일하다.
- Dot( . )
정규 표현식의 Dot(.) 메타 문자는 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미한다.
ex) 문자열 "aab", "a0b", "abc"가 정규식 a.b
- "aab"는 가운데 문자 "a"가 모든 문자를 의미하는 .과 일치하므로 정규식과 매치된다.
- "a0b"는 가운데 문자 "0"가 모든 문자를 의미하는 .과 일치하므로 정규식과 매치된다.
- "abc"는 "a"문자와 "b"문자 사이에 어떤 문자라도 하나는있어야 하는 이 정규식과 일치하지 않으므로 매치되지 않는다.
cf) a[.]b 는 a + Dot 문자 + b를 의미하므로 문자열 "a.b"와는 매치되지만 "a0b"와는 매치되지 않는다. [.]은 정규표현 식이 아닌 문자 . 을 의미한다.
- 반복(*)
*은 * 바로 앞에 있는 문자 a가 0부터 무한대로 반복될 수 있다는 의미이다.
ex) ca*t와 문자열 ct, cat, caaat
ct는 a가 0번 반복되어 매치, cat는 a가 1번 반복되어 매치, caaat는 a가 3번 반복되어 매치된다.
- 반복(+)
반복(*)과는 다르게 최소 1번 이상 반복될 때 사용한다.
- 반복({m,n}, ?)
반복 횟수를 고정할 수 있다. 반복 횟수가 m부터 n까지 매치할 수 있다. 또 m 또는 n을 생략하여 {3,}, {,3}, {3}처럼 사용하면 정확히 3번 반복한 경우만 매치한다.
- ?
?가 의미하는 바는 {0,1}로 있어도 되고 없어도 된다를 의미한다.
ex) ab?c는 a + b(는 있어도 되고 없어도 된다) + c가 된다.
- 파이썬은 위의 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다.
1
2
|
import re
p = re.compile('ab*')
|
cs |
출처 : 프로그래밍 대회에서 배우는 알고리즘 문제해결전략
https://wikidocs.net/4308
'알고리즘 학습 > 종만북 with 파이썬' 카테고리의 다른 글
종만북 8장 [w/ Python] (0) | 2020.08.12 |
---|---|
종만북 7장 [w/ Python] (0) | 2020.08.08 |
종만북 6장 [w/ Python] (0) | 2020.08.08 |
종만북 3장 (0) | 2020.07.31 |
- Total
- Today
- Yesterday
- 날짜 계산#BOJ#완전탐색#Python
- 파이썬알고리즘인터뷰#4장
- filter#isalnum#lower
- 병든 나이트#BOJ#탐욕법#Python
- 쿼드트리#BOJ#분할정복#Python
- 나무자르기#BOJ#이분탐색#Python
- 순열사이클#BOJ#Python
- django#slicing
- 배열합치기#분할정복#BOJ#Python
- 백준 알고리즘#BackTracking
- Swift#Tuples#Range
- 랜선자르기#이분탐색#BOJ#Python
- 반복수열#백준알고리즘#Python
- NumberofDiscIntersections#Codility#Sort#Python
- 미로 탐색#백준알고리즘#Python
- API#lazy#
- Distinct#Codility#Python
- 텀 프로젝트#백준알고리즘#Python
- 터틀비치#리콘#xbox#controller
- N으로 표현#DP#Programmers#Python
- 종이자르기#분할정복#BOJ#Python
- 공유기 설치#BOJ#이분탐색#Python
- 토마토#백준알고리즘#Python
- 섬의개수#백준알고리즘#Python
- Triangle#Sorting#Codility#Python
- django
- 리모컨#완전탐색#BOJ#Python
- PassingCars#Codility#Python
- 암호코드#dp#BOJ#Python
- Brackets#Stacks and Queues#Codility#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |