Skip to content

Instantly share code, notes, and snippets.

@5minho
Created January 1, 2018 14:45
Show Gist options
  • Save 5minho/596d26f7c545097cebf37d8b45e24616 to your computer and use it in GitHub Desktop.
Save 5minho/596d26f7c545097cebf37d8b45e24616 to your computer and use it in GitHub Desktop.

기초 정규식 (점프 투 파이썬)

메타 문자

  • 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용되는 문자
  • .^$*+?{}[]|()

문자 클래스 [ ]

[ ] -> '[ 와 ] 사이의 문자들과 매치'

[abc] -> a, b, c 중 한 개의 문자와 매치

[abc] - a : 매치 가능 ('a'가 있으므로) [abc] - before : 매치 가능 ('b'가 있으므로) [abc] - dude : 매치 불가 (a, b, c 어느 문자를 포함하고 있지 않다)

[ ] 안에 하이픈(-)은 범위를 나타냄

[a-c] == [abc] [0-5] == [012345]

[ ] 안에 ^ 가 있다면 반대의 의미임

[^0-9] == 숫자가 아닌 문자

dot (.)

줄바꿈 문자인 \n를 제외한 모든 문자와 매치됨

a.b - aab : 매치 가능 a.b - a2b : 매치 가능 a.b - a2c : 매치 불가

만약 a[.]b 라는 정규식이 있다면????

a.(문자 그대로의 .)b 와 매치 a0b와는 매치되지 않는다.

반복( *, +, {m, n})

  • * : 0개 이상 반복
    • ca*t -> a가 0 ~ (메모리가 허락 하는 한)∞ 개 반복 가능
      • ct (o)
      • cat (o)
      • caaaaaaaaat (o)
  • + : 1개 이상 반복
    • ca+t -> a가 1 ~ ∞ 개 반복 가능
      • ct (x)
      • cat (o)
      • caaaat (o)
  • {m, n} : m회 부터 n회 까지 반복
    • ca{2}t : a가 반드시 2번 반복
    • ca{2,5}t : ark 2~5번 반복

? : {0, 1}

ab?c - b가 있거나 없거나 ab?c = ac(o) ab?c = ab(o)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment