열렬히.뛰기

정규 표현식

Language > 마크업 / 스타일링 / 표현식 > 정규 표현식

  • 복잡한 문자열을 처리할 때 사용하는 기법
  • 훨씬 간편하고 직관적으로 코드를 작성할 수 있기에 사용한다.
  • 문자열의 규칙이 복잡해질수록 정규식의 효용은 더 커진다.

메타 문자

원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 의미.

문자 클래스

문자 클래스로 만들어진 정규식

[ ] 사이의 문자들과 매치된다는 의미를 가짐.

Dot : .

정규 표현식의 메타문자 . 은 줄바꿈 문자인 \n을 제외한 모든 문자와 매치

ex. a.b

  • aab ⇒ 매치된다.
  • a0b ⇒ 매치된다
  • abc ⇒ 매치되지 않는다.

반복 : *

바로 앞에 있는 문자가 0번이상 반복되는 경우

ex. ca*t

  • ct ⇒ 매치된다. a가 c와 t 사이에서 0번 반복되기 때문
  • cat ⇒ 매치된다.
  • caaat ⇒ 매치된다.

반복 : ({m,n})

반복 : ?

{0, 1} 의 의미

ex. ab?c

  • b가 있어도 되고 없어도 됨.
  • abc, ac 모두 매치된다.

or :|

  • 메타문자 | 는 or과 동일한 의미로 사용됨.
  • 파이썬 예시 코드
python
p = re.compile("iphone|ipad")
m = p.match("iphone11")

^

  • 문자열의 맨 처음과 일치함을 의미

달러 기호: $

  • 메타문자 $는 and와 동일기호
  • 문자열의 맨 마지막과 일치함을 의미

\s

  • 리턴키 값을 포함

\A

  • 문자열의 처음과 매치

^

  1. 패턴의 시작
  2. 반대
    • 문자 클래스 안에 ^가 사용될 때
  3. 여러줄의 문자열 각 라인의 처음과 일치
    • 파이썬에서 re.multiline() 쓰는 경우

\b

  • 단어 구분자. 띄어쓰기

\B

  • 공백으로 구분된 단어가 아닌 경우에만 매치