파이썬 정규표현식 기초1 메타문자

박은정·2021년 7월 25일
0

TIL

목록 보기
3/72

메타 문자(meta characters)

정규 표현식에 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자

. ^ $ * + ? { } [ ] \ | ( )

1. 문자 클래스 []

문자 클래스로 만들어진 정규식 : [] 사이의 문자들과 매치된다
문자 클래스를 만드는 메타 문자인 [] 사이에는 어떤 문자도 들어갈 수 있다.

[] 예시1

정규 표현식 [abc]
의미 : a, b, c 중 한 개의 문자와 매치

"a", "before", "dude" 문자열에서 정규표현식 [abc] 매치여부 확인

  • a : 정규식과 일치하는 문자인 "a"가 있으므로 매치
  • before : 정규식과 일치하는 문자인 "b"가 있으므로 매치
  • dude : 정규식과 일치하는 문자인 a, b, c 중 어느 하나도 포함하고 있지 않으므로 매치되지 않음

[] 안에 하이픈 -

  1. 문자클래스 [] 안의 두 문자 사이에 하이픈-을 사용하면 두 문자 사이의 범위From - To 를 의미한다

    • [a-c] 정규표현식 : [abc]와 동일
    • [0-5] 정규표현식 : [012345]와 동일
  2. 문자클래스 [] 안에는 어떤 문자나 메타 문자던 사용이 가능하지만 ^ 메타문자 하나만 주의하면 된다

    • 문자클래스 안에 ^ 메타문자를 사용 : 반대 not라는 의미
    • 예: [^0-9] 정규표현식은 숫자가 아닌 문자만 매치된다

하이픈 - 사용한 문자클래스 예시

  • [a-zA-Z] : 알파벳 모두
  • [0-9] : 숫자

2. Dot .

정규표현식의 Dot, 메타 문자 : 줄바꿈 문자 \n 을 제외한 모든 문자와 매치된다
정규식을 작성할 때 re.DOTALL 옵션을 주면 \n 문자와도 매치된다

정규식 비교

  1. a, b 라는 문자 사이에 어떤 문자가 들어가도 모두 매치된다는 정규식
# "a + 모든문자 + b"
a, b
  1. a, b 문자열과 매치되고, a0b 문자열과는 매치되지 않는 정규식
# a + Dot(.)문자 + b
a[.]b

만약 문자 클래스 [] 내에 Dot. 메타 문자가 사용된거면
"모든 문자"라는 의미가 아닌 문자 . 그대로를 의미한다.
혼동하지 않도록 주의


3. 반복 *

https://wikidocs.net/4308


4. 반복 +


5. 반복 {m,n}, ?

{m}

{m, n}

?


profile
새로운 것을 도전하고 노력한다

0개의 댓글