정규 표현의 요약 구성
일치를 구성하십시오
성격
x 문자 x
// BackSlash 문자
/0n 문자 N이 8 대 값 0 (0 <= n <= 7)
/0nn 문자 nn 8 대 값 0 (0 <= n <= 7)
/0mnn 문자 mnn 값 0 (0 <= m <= 3, 0 <= n <= 7)
/xhh 문자 HH 16 진수 값 0x
/uhhhh 캐릭터 hhhhh 16 진수 값 0x
/t 탭 ( '/u0009')
/n New Line (라인 브레이크) 문자 ( '/u000a')
/r 캐리지 리턴 문자 ( '/u000d')
/f 페이지 브레이크 ( '/u000c')
/알람 (벨) 기호 ( '/u0007')
/e 탈출 문자 ( '/u001b')
/cx x에 해당합니다
캐릭터 클래스
[ABC] A, B 또는 C (간단한 클래스)
[^abc] a, b 또는 c를 제외한 모든 문자 (음수)
[a-za-z] a ~ z 또는 a ~ z, 양쪽 끝의 문자가 포함되어 있습니다 (범위)
[AD [MP]] A ~ D 또는 M ~ P : [A-DM-P] (Union)
[az && [def]] d, e 또는 f (교차)
[az && [^bc]] a to z, b와 c : [ad-z] (마이너스)
[az && [^mp]] a to z, m to p : [a-lq-z] (마이너스)
사전 정의 된 문자 클래스
. 모든 캐릭터 (라인 엔딩 캐릭터와 일치하거나 일치하지 않을 수도 있음)
/d 번호 : [0-9]
/d 비 번호 : [^0-9]
/s whitespace 문자 : [/t/n/x0b/f/r]
/s 비 whitespace 문자 : [^/s]
/w 단어 문자 : [a-za-z_0-9]
/w 비 단어 문자 : [^/w]
posix 캐릭터 클래스 (US-ASCII 만 해당)
/p {하단} 소문자 알파벳 문자 : [AZ]
/p {상단} 대문자 문자 : [az]
/p {ascii} 모든 ascii : [/x00-/x7f]
/p {alpha} 알파 문자 : [/p {하단}/p {위}]
/p {digit} 소수점 번호 : [0-9]
/p {alnum} 영숫자 문자 : [/p {alpha}/p {digit}]
/p {punct} 구두점 :! "#$%& '()*+,-./:; <=>?@[/]^_` {|} ~
/p {Graph} 가시 문자 : [/p {alnum}/p {punct}]
/p {print} 인쇄용 문자 : [/p {Graph}/x20]
/p {blank} 공간 또는 탭 문자 : [ /t]
/p {cntrl} 제어 문자 : [/x00-/x1f/x7f]
/p {xdigit} 16 진수 번호 : [0-9A-FA-F]
/p {space} 공백 문자 : [/t/n/x0b/f/r]
java.lang.character 클래스 (간단한 자바 문자 유형)
/p {javalowercase}는 java.lang.character.islowercase ()와 같습니다.
/p {javauppercase}는 java.lang.character.isuppercase ()와 같습니다.
/p {javawhitespace}는 java.lang.character.iswhitespace ()와 동일합니다.
/p {javamirrored}는 java.lang.character.ismirrored ()와 같습니다.
유니 코드 블록 및 클래스
/p {ingreek} 그리스 블록의 문자 (간단한 블록)
/p {lu} 대문자 (간단한 범주)
/p {sc} 통화 기호
/p {ingreek} 그리스 블록 (음수)을 제외한 모든 문자
[/p {l} && [^/p {lu}]] 대문자를 제외한 모든 문자 (마이너스)
경계 매칭
^ 줄의 시작
$ line의 끝
/b 단어 경계
/b 비 단어 경계
/입력 시작
/g 이전 경기의 끝
/z 입력의 끝, 마지막 결말 문자에 대해서만 (있는 경우)
입력의 끝 /z
욕심 많은 정량적 단어
엑스? x, 한 번 또는 한 번, 아니오
x* x, 0 또는 여러 번
x+ x, 한 번 이상
x {n} x, 정확히 n 번
x {n,} x, 적어도 n 번
x {n, m} x, 적어도 n 번, m 회 이상은 아닙니다.
꺼리는 정량적 단어
엑스?? x, 한 번 또는 한 번, 아니오
엑스*? x, 0 또는 여러 번
x+? x, 한 번 이상
x {n}? x, 정확히 n 번
x {n,}? x, 적어도 n 번
x {n, m}? x, 적어도 n 번이지만 m 회 이상은 아닙니다.
소유적인 정량적 단어
x?+ x, 한 번 또는 한 번, no
x*+ x, 0 또는 여러 번
x ++ x, 한 번 이상
x {n}+ x, 정확히 n 번
x {n,}+ x, 적어도 n 번
x {n, m}+ x, 적어도 n 번, m 회 이상은 아닙니다.
논리 연산자
xy x 힐 y
x | yx 또는 y
(x) x, 캡처 그룹으로서
뒤로 인용구
/n 일치하는 nth 캡처 그룹
인용하다
/아무것도 아니지만 다음 문자를 인용하십시오
/q는 아무것도 없지만 /e까지 모든 문자를 인용합니다
/e 아무것도 아니지만 /q로 시작하는 참조를 종료합니다
특수 건설 (캡처되지 않은)
(? : x) x, 비 캡처 그룹으로서
(? idmsux -idmsux) 아무것도 없지만 플래그 idmsux와 일치합니다.
(? idmsux -idmsux : x) x, as idmsux on- 주어진 플래그와 함께 OFF
비 캡처 그룹 (? = x) x, 0 폭의 양수 룩 하이드를 통한
(?! x) x, 0을 통한 음수 전망대
(? <= x) x, 제로 폭의 양의 룩보드를 통한 x
(? <! x) x, 0을 통한 음의 외관
(?> x) x, 독립적 인 캡처 그룹으로서
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
백 슬래시, 탈출 및 참조
백 슬래시 문자 ( '/')는 상기 표에 정의 된대로 탈출 구조물을 참조하는 데 사용되며, 또한 비 에스코지 구조물로 해석 될 다른 문자를 참조하는 데 사용됩니다. 따라서 // 표현식은 단일 백 슬래시와 일치하고 /{왼쪽 브래킷과 일치합니다.
탈출 구조를 나타내지 않는 알파벳 성 특성 전에 백 슬래시를 사용하는 것은 잘못입니다. 그들은 정규 표현 언어의 향후 확장을 위해 예약되어 있습니다. 캐릭터가 탈출 된 구조물의 일부가 아닌지에 관계없이 비 alphabetical 특성 이전에 백 슬래시를 사용할 수 있습니다.
Java 언어 사양의 요구 사항에 따르면, Java 소스 코드의 문자열의 백 슬래시는 유니 코드 이스케이프 또는 다른 문자 탈출로 해석됩니다. 따라서 정규 표현식이 보호되고 Java Bytecode 컴파일러에 의해 해석되지 않음을 나타내려면 문자열 리터럴에 두 개의 백 슬래시를 사용해야합니다. 예를 들어, 정규 표현식으로 해석되면 문자열 문자 "/b"는 단일 백 스페이스 문자와 일치하고 "// b"는 단어 경계와 일치합니다. 문자열 문자 "/(hello/)"는 불법이며 컴파일 타임 오류를 유발합니다. 문자열 (hello)과 일치하려면 문자열 문자 "// (hello //)"를 사용해야합니다.
캐릭터 클래스
캐릭터 클래스는 다른 문자 클래스에 나타날 수 있으며 노조 연산자 (암시 적으로) 및 교차로 운영자 (&&)를 포함 할 수 있습니다. Union Operator는 피연산자 클래스 중 하나의 모든 문자를 포함하는 클래스를 나타냅니다. 교차로 연산자는 동시에 두 오페라 클래스의 모든 문자를 포함하는 클래스를 나타냅니다.
캐릭터 클래스 연산자의 우선 순위는 다음과 같습니다.
1 문자 탈출/x
2 그룹화 [...]
3 범위 AZ
4 Union [ae] [iu]
5 교차로 [az && [aeiou]]
Metacharacters의 다른 세트는 실제로 캐릭터 클래스 외부가 아닌 캐릭터 클래스 내부에 있습니다. 예를 들어, 정규 표현. 특수한 의미는 캐릭터 클래스 내에서 손실되며 표현은 Metacharacters를 형성하는 범위가됩니다.
라인 엔딩 캐릭터
라인 엔딩 캐릭터는 입력 문자 시퀀스의 줄의 끝을 표시하는 하나 또는 두 문자의 시퀀스입니다. 다음 코드는 라인 결말 문자로 인식됩니다.
New Line (Line Newline) 캐릭터 ( '/n'),
캐리지 리턴 문자 ( "/r/n")와 새로운 라인 문자,
별도의 캐리지 리턴 문자 ( '/r'),
다음 줄 문자 ( '/u0085'),
줄 구분 기자 ( '/u2028') 또는
단락 분리기 ( '/u2029).
UNIX_LINES 모드가 활성화되면 새로운 라인 문자는 독특하게 인식 된 라인 엔드 문자입니다.
DotAll 플래그가 지정되지 않은 경우 정규 표현식입니다. 모든 캐릭터와 일치 할 수 있습니다 (라인 끝 제외).
기본적으로 정규식 ^ 및 $는 라인 엔딩을 무시하고 전체 입력 시퀀스의 시작과 끝에만 각각 일치합니다. 멀티 린 모드가 활성화되면 입력 시작과 라인 끝 (입력 끝) 후에 만 일치가 발생합니다. 멀티 라인 모드에있을 때 $는 라인 종료 전 또는 입력 순서의 끝에만 일치합니다.
그룹 및 캡처
캡처 그룹은 열린 괄호를 왼쪽에서 오른쪽으로 계산하여 번호를 매길 수 있습니다. 예를 들어, 표현 ((a) (b (c)))에 4 개의 그러한 그룹이 있습니다.
1 (a) (b (c)))
2 /a
3 (b (c))
4 (c)
그룹 0은 항상 전체 표현을 나타냅니다.
캡처 그룹은 일치에서 해당 그룹과 일치하는 입력 시퀀스의 각 하단이 저장되기 때문에 이러한 방식으로 명명됩니다. 캡처 된 하속은 나중에 후면 참조를 통해 표현식에 사용될 수 있거나 일치하는 작업이 완료된 후 마칭 자에서 얻을 수 있습니다.
그룹과 관련된 캡처 입력은 항상 가장 최근에 그룹과 일치하는 후속입니다. 양자화로 인해 그룹이 다시 계산되면, 이전에 포착 된 값은 두 번째 계산 실패 (있는 경우)에서 유지됩니다. 예를 들어, 문자열 "aba"를 표현식 (a (b)?)+에 일치 시키면 두 번째 그룹을 "b"로 설정합니다. 각 경기가 시작될 때, 캡처 된 모든 입력은 폐기됩니다.
(?)로 시작하는 그룹은 텍스트를 캡처하지 않고 콤보 카운트에 포함되지 않는 순수한 캡처 그룹입니다.
위의 것은 편집자가 가져온 정규 표현식 (문법 기사에서 권장)의 모든 내용입니다. 모두가 wulin.com을 더 지원할 수 있기를 바랍니다 ~