정규표현식 정리

lwoody·2021년 3월 2일
0
post-thumbnail

/pattern/option

option

  • g: global
  • m: multiline

ex) /^foo/gm
보통 g, m 둘 다 활성화

Pattern

Groups and ranges

| : 또는
() : 그룹으로 지정

  • (a|b) : a,b 매칭 + a,b는 group 1로 지정됨
  • (a|b)|(c) : a,b,c 매칭 + a,b는 group1 + c는 group2
  • gr(e|a)y : grey, gray 매칭 + e,a는 group1

[] : 문자 set, 괄호안에 속한 어떤 문자든

  • [a-f], [abcdef] 동일
  • [a-fA-Z0-9] : 해당 범위 문자내 모두

[^] : 부정 문자 set, 괄호안의 문자 모두에 해당되지 않을때

  • [^a-f]

(?:) : 매칭하지만 그룹핑 및 기억 x

  • gr(?:e|a)y : grey, gray 매칭 + 그룹핑 x (기억x)

Quantifiers

? : 앞의 문자가 없거나 있거나 (zero or one)

  • gra?y : gray 문자열에서 a가 있거나 없을때 매칭 (gray, gry)

* : 없거나 있거나 많거나 (zero or more)

  • gra*y : gray 문자열에서 없거나 있거나 많을때 매칭 (gray, gry, graay)

+ : 하나 또는 많이 (one or more)

  • gra+y : gray 문자열에서 하나있거나 많을때 매칭 (gray, graay)

{n} : n번 반복
{min,} : 최소
{min,max} : 최소, 그리고 최대

  • gra{2}y : gray 문자열에서 a가 2번 반복된 경우 매칭
  • gra{2,3}y : gray 문자열에서 a가 최소 2번에서 최대 3번 반복된 경우 매칭

Boundary-type

\b : 단어 경계

  • \bYa : 앞에(prefix) Ya가 붙는 단어의 해당 부분 매칭 (Ya, Yaa)
  • Ya\b : 뒤에(postfix) Ya가 붙는 단어의 해당 부분 매칭 (Ya, aaYa)

\B : 단어 경계 아님

  • \BYa : 앞에(prefix) Ya가 붙는 단어의 나머지 부분 매칭 (Yaa, YaYaYa)
  • Ya\B : 뒤에(postfix) Ya가 붙는 단어의 나머지 부분 매칭 (aaYa, YaYaYa)

^ : 문장의 시작

  • ^Ya : 문장의 시작에 해당되는 부분 매칭 (Ya a b c d Ya)
  • m 옵션 제거시 전체 문단 앞에서만 확인함

$ : 문장의 끝

  • Ya$ : 문장의 끝에 해당되는 부분 매칭 (Ya a b c d Ya)
  • m 옵션 제거시 전체 문단 끝에서만 확인함

Character classes

\ : 특수 문자를 검색하려고하는 경우 앞에 붙여줌

  • \[\] : abce[]gs

. : 어떤 글자 (줄바꿈 문자 제외)
\d : digit 숫자 매칭
\D : digit 숫자 아닌것 매칭
\w : word 문자 (문자열 매칭)
\W : word 문자 아님 (문자열을 제외한것 매칭)
\s : space 공백만 매칭
\S : space 공백 아닌 것 매칭


참고 : https://github.com/dream-ellie/regex
테스트 : https://regexr.com/5ml92
연습 : https://regexone.com/

profile
Web Service Developer

0개의 댓글