Q. 정규 표현식
정규 표현식은 원자, 메타문자, 패턴 수정으로 구성됩니다. 원자는 단지 평범한 문자일 뿐입니다.
메타 문자:
d: 모든 십진수 [0-9]와 일치합니다.
s: 모든 공백 문자와 일치합니다.
w: 모든 A 숫자와 일치합니다. 문자, 밑줄 [0-9a-zA-Z_]
.: 개행 문자를 제외한 모든 문자와 일치
?: 0회 또는 1회 일치
+: 다음과 일치 이전 원자를 1회 이상
*: 원하는 횟수만큼 일치합니다.
|: 다중 선택 패턴을 구분하는 데 사용되는 두 개 이상의 분기 선택을 일치시킵니다.
b: 단어 경계 일치
B: 단어가 아닌 경계
^: 입력 문자열의 시작 위치와 일치
$: 입력 문자열과 일치
() : 여러 원자를 하나의 단위로 큰 원자로 결합한 패턴 단위. 이렇게 하면 나중에 사용하기 위해 검색할 수 있는 캐시에 관련 일치 항목이 저장됩니다. 부분 일치 항목이 저장되는 버퍼는 1부터 시작하여 최대 99까지 번호가 지정됩니다. 각 버퍼는 n을 사용하여 액세스할 수 있습니다. 정규식 패턴에 사용할 때는 이스케이프에 주의하세요. 예: "/^d{4}(W)d{2}1d{2}$/". 비저장 모드는 괄호 안의 ?:s를 사용하여 설정할 수 있습니다. 정규식 엔진의 내부 작동 정규식 엔진의 작동 방식을 알면 특정 정규식이 예상대로 작동하지 않는 이유를 빠르게 이해하는 데 도움이 됩니다.<code> 有两种类型的引擎:文本导向(text-directed)的引擎和正则导向(regex-directed)的引擎。Jeffrey Friedl把他们称作DFA和NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如“惰性”量词(lazy quantifiers)和反向引用(backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前最流行的引擎。 </code>