정규식이라고 하기도 한다. 원하는 문자의 조합을 찾거나 구성할 때 사용한다. 여기에 .test
라는 메서드를 활용하면 탐색 후 포함 여부를 boolean
값으로 반환한다.
/aaa/
처럼 /
로 양 옆을 감싸서 사용한다. 이때는 정확히 'aaa'를 포함하고 있어야 탐색된다.
aaa
나 aaabbbaaaa
는 탐색할 수 있고(.test
이용시 true
반환) aa aa
는 탐색할 수 없다(.test
이용시 false
반환). 공백이 있기 때문이다.
패턴구분자 문자열패턴 패턴구분자종료 패턴변경자
의 순서로 작성한다.
|
선택
apple|APPLE 는 apple 또는 APPLE 라는 뜻
[]
문자 클래스
문자 또는 문자열 탐색 [12345]는 1~5까지 숫자 중 아무 숫자 1개 탐색
-
문자 클래스 내 범위지정
위의 [12345]를 [1-5]로 대체 가능
^
문자 클래스 내 부정
[^0-9]는 0~9 빼고 모든 문자
()
서브패턴
flav(o|ou)r 는 flavour, flavor 둘 다 탐색
수량자
*
0회 이상 매치
+
1회 이상 매치
?
0회 또는 1회만 매치
{n,m}
n회부터 m회까지 반복
{n}
n회 반복
{n,}
n회 이상 반복
앵커
위치고정
^
행의 처음
$
행의 끝
임의문자
.
줄바꿈 문자를 제외한 모든 문자 1개
수정자
g
전역 검색
i
대소문자 구분 안 함
m
탐색시 줄바꿈이 있어도 전체 검색
s
.
에서 포함하지 않던 줄바꿈도 포함해 탐색
\b
문자와 공백 사이
\c
제어문자
\d
숫자에 해당하는 유니코드에 대응.
\f
폼 피드
\n
줄바꿈 문자
\s
공백 문자
\t
탭 문자
\v
수직 탭
\w
단어 영문자+숫자+(밑줄) [0-9a-zA-Z]
\x
16진수 값
\0
8진수 값
\ ^ $ . | [ ] ( ) * + ? { }
이 문자들은 문자 자체의 의미 외에 연산자로 쓰이거나 다른 용도로 쓰이기 때문에 해당 문자 자체를 탐색하고 싶다면 문자 앞에 역슬래시\
를 붙여 사용한다.
예: ?를 찾고싶다면 \?