정규식(RE, regexes 또는 regex 패턴)
참고 사이트
EX. [abc] : a,b 또는 c 문자와 일치 == [a-c]
EX. [a-z] : 소문자들만 일치
EX. [^5] : 5를 제외한 모든 문자와 일치
Ex. [\] : \ 일치
Ex. [cat] : ‘ct’ (0개의 a문자), ‘cat’(1개의 a문자), ‘caaat’(3개의 a문자) 등과 일치
* 은 탐욕적이다 -> RE를 반복할 때, 일치 엔진은 가능한 한 여러 번 반복하려고 시도
Ex. [a[bcd]b]이 정규식을 ‘abcbd’와 일치시킨다고 생각
단계 | 일치된 것 | 설명 |
---|---|---|
1 | a | RE의 a가 일치합니다. |
2 | abcbd | 엔진은 가능한 한 길게 [bcd]*와 일치시키려고 문자열의 끝까지 갑니다. |
3 | 실패 | 엔진은 b를 일치하려고 시도하지만, 현재 위치가 문자열의 끝이므로 실패합니다. |
4 | abcb | 물러서서, [bcd]*가 하나 적은 문자와 일치합니다. |
5 | 실패 | b를 다시 시도하지만, 현재 위치는 ‘d’ 인 마지막 문자에 있습니다. |
6 | abc | 다시 물러서서, [bcd]*가 bc하고 만 일치합니다. |
6 | abcb | b를 다시 시도합니다. 이번에는 현재 위치의 문자가 ‘b’이므로 성공합니다. |
Ex. [home-?brew]인 정규표현식은 ‘homebrew’ or ‘home-brew’와 일치
[a/{1,3}]인 정규표현식은 ‘a/b’, ‘a//b’, ‘a///b’와 일치
{m}인 경우 이전 항목과 정확히 m번 일치