정규식 정리

두두두·2023년 3월 30일
0

공통

목록 보기
1/2

정규식

정의
: 텍스트를 찾고 조각하는데 쓰는 문자열

기본 패턴

  • 대/소문자 구분
  • 특수문자 표기 => \ + 특수문자
기호의미
[][]안의 문자 중 일치
()그룹 생성
{n, m}최소 n번, 최대 m번 반복
{n, }최소 n번 반복
{n}n번 반복
+1번 이상 반복
*0번 이상 반복
?0, 1번 반복
.모든 문자열(숫자, 한글, 영어, 특수기호, 공백), 줄바꿈 X
^전체 범위의 시작
$전체 범위의 끝
\w문자 즉, [a-zA-Z0-9_]
\W비문자, \w와 정반대
\d숫자, [0-9]
\D숫자 제외 문자, \d와 정반대
\s단일 공백
\b문자와 비문자의 경계 가리킴 (\w와 \W의 경계)
\B비문자와 비문자 경계
(?m)각 줄의 시작을 의미, 항상 패턴의 맨 앞에 위치

* \b, \B는 단어를 매칭할 때 주로 사용
ex) \bcat\b : cat 단어와 매칭, atcata 등은 매칭 X



게으른 수량자

: 최소 범위로 패턴과 매칭

기호의미
*?0회 이상 반복하는 최소 범위
+?한 번 이상 반복하는 최소 범위
??0, 1번 이상 반복하는 최소 범위
{}?지정한 횟수에 맞는 최소 범위



역참조

: 패턴에서 n번째 사용한 하위표현식( ()로 그룹지은 패턴 )과 일치한 문자
\n -> \1, \2

*역참조의 기호는 언어마다 다르다

ex) <[Hh]([1-6])>.*? <\/[[Hh]\1>
[1-6]에서 매칭 된 문자와 같은 값이 \1에 매칭된다
-> <h1>mmmmmmm</h1> 매칭된다

<[Hh]([1-6])>.*? <\/[[Hh][1-6]>과 같이 패턴을 작성하면
-> <h1>mmmmmmm</h5> 도 매칭된다



탐색

  1. 전방 탐색
    : (?= 조건), 조건은 포함하지 않고, 조건 앞의 문자 매칭
    ex) 이름:홍길동(?=:) 조건 적용
    -> 이름 매칭

  2. 후방 탐색
    : (?<= 조건), 조건은 포함하지 않고, 조건 뒤의 문자 매칭
    ex) $300(?<=\$) 조건 적용
    -> 300 매칭

0개의 댓글

Powered by GraphCDN, the GraphQL CDN