정의
: 텍스트를 찾고 조각하는데 쓰는 문자열
| 기호 | 의미 |
|---|---|
| [] | []안의 문자 중 일치 |
| () | 그룹 생성 |
| {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> 도 매칭된다
(?= 조건), 조건은 포함하지 않고, 조건 앞의 문자 매칭이름:홍길동 에 (?=:) 조건 적용이름 매칭(?<= 조건), 조건은 포함하지 않고, 조건 뒤의 문자 매칭$300에 (?<=\$) 조건 적용300 매칭