정의
: 텍스트를 찾고 조각하는데 쓰는 문자열
기호 | 의미 |
---|---|
[] | []안의 문자 중 일치 |
() | 그룹 생성 |
{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
매칭