정규식이라고 하기도 한다. 원하는 문자의 조합을 찾거나 구성할 때 사용한다. 여기에 .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]
\x16진수 값
\08진수 값
\ ^ $ . | [ ] ( ) * + ? { }
이 문자들은 문자 자체의 의미 외에 연산자로 쓰이거나 다른 용도로 쓰이기 때문에 해당 문자 자체를 탐색하고 싶다면 문자 앞에 역슬래시\를 붙여 사용한다.
예: ?를 찾고싶다면 \?