티스토리 뷰

반응형

정규 표현식

 

- 메타 문자 : 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자

 

- 문자 클래스 [ ]

 

  정규 표현식이 [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
= 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
댓글