PCRE / 메모
Uncategorized
2023-08-05
PCRE
Perl Compatible Regular Expressions
시작과 끝
- 패턴의 시작과 끝은 구분자로 구별하며, 같은 구분자를 써야 한다.
예)/abc/
,$abc$
,|abc|
- 구분자는 영문, 숫자,
\
를 제외한 모든 문자를 사용할 수 있다. 보통/
를 많이 사용하며, 패턴에/
를 찾아야 하는 경우 다른 구분자를 사용한다.
메타문자
\
이스케이프 문자^
문자열의 시작
/^abc/
: abc로 시작하는 문자열.$
문자열의 끝
/abc$/
: abc로 끝나는 문자열.
단일 문자
/a.b/
: a와 b 사이에 문자 하나|
OR[
클래스의 시작]
클래스의 끝(
서브 패턴의 시작)
서브 패턴의 끝{
수량자의 시작}
수량자의 끝\b
문자의 시작과 끝\t
탭\r
커서를 현재 줄 처음으로 이동\n
커서를 다음 줄로 이동
수량자
수량자 바로 앞의 문자가 몇 번 나와야 하는지 지정
?
0번이나 1번.{0,1}
과 같다.
/abc?/
: ab, abc와 매칭*
0번 이상.{0,}
과 같다.
/abc*/
: ab, abc, abcc 등과 매칭+
1번 이상.{1,}
과 같다.
/abc+/
: abc, abcc 등과 매칭{n}
n번만
/abc{2}d/
: abccd와 매칭{n, m}
n번 이상 m번 이하
/abc{2,3}d/
: abccd, abcccd와 매칭{n,}
n번 이상
/abc{2,}d/
: abccd, abcccd, abcccd 등과 매칭
문자 클래스
\
, |
, ^
, -
를 제외한 모든 문자는 리터럴로 취급. -
가 클래스 마지막에 사용되는 경우에는 리터럴로 취급.
[0-9]
,\d
임의의 10진수[^0-9]
,\D
10진수가 아닌 아닌 모든 문자[\f\r\t\n\v]
,\s
모든 공백 문자[^\f\r\t\n\v]
,\S
공백 문자가 아닌 모든 문자[A-Za-z0-9]
,\w
A-Z이거나 a-z 이거나 0-9에 해당하는 모든 문자[^A-Za-z0-9]
,\W
A-Z도 아니고 a-z도 아니고 0-9도 아닌 문자