[python/알고리즘] 정규표현식

·2024년 12월 23일
0

메타문자

  • 원래 그 문자가 가진 뜻이 아니라 특별한 의미를 가진 문자.
. ^ $ * + ? { } [ ] \ | ( )

[ ] 문자 - 문자 클래스

  • 문자 클래스로 만들어진 정규식은 '['dhk ']'사이의 문자들과 매치

  • 정규 표현식이 [abc]라면 이 표현식의 의미는 ‘a, b, c 중 한 개의 문자와 매치’를 뜻한다.

  • 문자 클래스 안에 ^ 메타 문자를 사용할 경우에는 반대(not)라는 의미

    • [a-zA-Z] : 모든 알파벳
    • [0-9] : 모든 숫자
  • \d - 숫자와 매치된다. [0-9]와 동일한 표현식이다.

  • \D - 숫자가 아닌 것과 매치된다. [^0-9]와 동일한 표현식이다.

  • \s - 화이트스페이스(whitespace) 문자와 매치된다. [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈칸은 공백 문자(space)를 의미한다.

  • \S - 화이트스페이스 문자가 아닌 것과 매치된다. [^ \t\n\r\f\v]와 동일한 표현식이다.

  • \w - 문자+숫자(alphanumeric)와 매치된다. [a-zA-Z0-9_]와 동일한 표현식이다.

  • \W - 문자+숫자(alphanumeric)가 아닌 문자와 매치된다. [^a-zA-Z0-9_]와 동일한 표현식이다.

.(dot) 문자 - \n을 제외한 모든 문자

  • 줄바꿈 문자인 \n을 제외한 모든 문자와 매치
a.b
  • 'a + 모든문자 + b'의 의미
a[.]b
  • "a + . + b"의 의미. [.]는 문자 그대로의 '.'을 의미한다.

* 문자

  • *의 바로 앞에 있는 문자가 0부터 무한대까지 반복될 수 있다.

+ 문자

  • '+' 바로 앞에 있는 문자가 최소 1번 이상 반복될 수 있다.

{ } 문자와 ? 문자

{ } 문자

  • { } 반복 횟수 고정:

    • {m, n}: 반복 횟수를 m부터 n까지로 고정
    • {n, }: 반복 횟수 n 이상
    • {, n}: 반복 횟수 n 이하
  • {1,}은 +, {0,}은 *와 동일하다.

ca{2}t
# "c + a를_반드시_2번_반복 + t"
  • 'cat' X
  • 'caat' O

? 문자

  • {0, 1}
  • 즉, 있어도 되고 없어도 된다.
ab?c
# "a + b가_있어도_되고_없어도_됨 + c"
  • 'ac' O
  • 'abc' O

시작과 끝

시작

^x

x$
profile
To Dare is To Do

0개의 댓글