> Java > java지도 시간 > Java 정규식에 대한 자세한 소개

Java 정규식에 대한 자세한 소개

PHP中文网
풀어 주다: 2017-06-22 14:52:38
원래의
1330명이 탐색했습니다.

표현 의미:

x 문자 x. 예를 들어, a는 a
\ 백슬래시 문자를 나타냅니다. 작성시에는 \\.로 적어주세요. (참고: Java는 첫 번째 구문 분석에서 \\를 정규 표현식\으로 구문 분석한 다음 두 번째 구문 분석에서 이를 정규 표현식으로 구문 분석하기 때문에 1.1의 \를 포함하여 1.1에 나열되지 않은 모든 이스케이프 문자는 귀하가 가지고 있는 모든 것입니다. 두 번 써야 합니다)

(줄 종결자와 일치할 수도 있고 일치하지 않을 수도 있음)
d 숫자: [0-9]
D 숫자가 아닌 문자: [^0-9]
s 공백 문자: [tnx0Bfr]
S 공백이 아닌 문자: [^s ]
w 단어 문자: [a-zA-Z_0-9]
W 단어가 아닌 문자: [^w]
4.POSIX 문자 클래스(US-ASCII만 해당) (백슬래시는 다음과 같이 두 번 써야 합니다. p{ Lower}는 \p{Lower})
p{Lower} 소문자 알파벳 문자: [a-z]로 작성됩니다.
p{Upper} 알파벳 대문자: [A-Z]
p{ASCII} 모든 ASCII: [x00-x7F]
p{Alpha} 알파벳 문자: [p{Lower}p{Upper}]
p{Digit} 십진수 : [0-9]
p{Alnum} 영숫자: [p{Alpha}p{Digit}]
p{Punct} 구두점: !"#$%&'()*+,-./:; < =>?@[]^_`{|}~
p{Graph} 표시 가능한 문자: [p{Alnum}p{Punct}]
p{Print} 인쇄 가능한 문자: [p{Graph}x20]
p{ 공백} 공백 또는 탭 문자: [t]
p{Cntrl} 제어 문자: [x00-x1Fx7F]
p{XDigit} 16진수: [0-9a-fA-F]
p{ 공백}  공백 문자: [ tnx0Bfr]
5.java.lang.Character 클래스(간단한 Java 문자 유형)
p{javaLowerCase}  java.lang.Character.isLowerCase()와 동일
p{javaUpperCase}  java .lang.Character.isUpperCase(와 동일 )
p{javaWhitespace} java.lang.Character.isWhitespace()와 동일
p{javaMirrored} java.lang.Character.isMirrored()
6.Unicode 블록 및 카테고리와 동일 클래스
p{InGreek} 그리스 블록의 문자 (단순 블록)
p{Lu} 대문자 (단순 클래스)
p{Sc} 통화 기호
P{InGreek} 그리스어 블록을 제외한 모든 문자 (부정)
[p{L}&&[^p{Lu}] ] 대문자(빼기)를 제외한 모든 문자
7. 경계 일치자
^ 정규식 시작 부분에 ^를 사용합니다. 예: ^(abc)는 abc로 시작하는 문자열을 나타냅니다. Pattern p = Pattern.compile(regex,Pattern.MULTILINE);
$과 같이 컴파일할 때 MULTILINE 매개변수를 설정해야 합니다. 예를 들어 (^bca).*( abc$)는 bca로 시작하고 abc로 끝나는 줄을 의미합니다.
b 단어 경계. 예를 들어 b(abc)는 단어의 시작 또는 끝에 abc가 포함되어 있음을 의미합니다. (abcjj, jjabc는 모두 일치할 수 있음)
B 비단어 경계. 예를 들어 B(abc)는 단어 중간에 abc가 포함되어 있다는 뜻입니다. (jjabcjj는 일치하지만 jjabc, abcjj는 일치하지 않습니다.)
A 입력의 시작
G 이전 일치의 끝 (개인적으로 이 매개변수는 쓸모가 없습니다). 예를 들어, \Gdog은 이전 일치 항목이 끝나면 dog을 검색한다는 뜻이며, 개가 없으면 처음부터 검색한다는 뜻입니다.
Z 입력 끝, 최종 종결자(있는 경우)에만 사용됩니다.
줄 종결자는 입력 문자 시퀀스의 줄 끝을 표시하는 하나 또는 두 개의 문자 시퀀스입니다.
다음 코드는 줄 종결자로 인식됩니다.
-새 줄(줄 바꿈) 문자('n'),
-캐리지 리턴 문자("rn") 다음에 줄 바꿈 문자,
-단일 캐리지 리턴 문자( 'r'),
‐다음 줄 문자('u0085'),
‐줄 구분 기호('u2028') 또는
‐단락 구분 기호('u2029).
z 입력 끝
패턴을 컴파일할 때 하나 이상의 플래그를 설정할 수 있습니다. 예를 들어
Pattern Pattern = Pattern.compile(patternString,Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CASE)
다음 6가지 플래그가 지원됩니다.
‐ CASE_INSENSITIVE: 이 플래그는 기본적으로 US ASCII 문자만 고려합니다.
‐UNICODE_CASE: CASE_INSENSITIVE와 결합할 때 유니코드 문자 일치를 사용합니다.
‐MULTILINE: ^ 및 $는 전체 입력이 아닌 줄의 시작과 끝과 일치합니다.
‐UNIX_LINES: 여러 줄 모드에서 ^ 및 $를 일치하는 경우 ^ 및 $만 일치합니다. $ 'n'은 줄 종결자로 처리됩니다.
‐DOTALL: 이 플래그가 사용되면 . 기호는 줄 종결자를 포함한 모든 문자와 일치합니다.
‐CANON_EQ: 유니코드 문자의 표준 동등성을 고려합니다.
X? 1회 여부
X* X, 0회 이상
X+ X, 1회 이상
X{n} m} X, n회 이상, m회 이하
9.Reluctant 수량자
X??X {n}? X, 정확히 n번
X{n,}? X, 적어도 n번
X{n,m}? X, 최소 n회, 최대 m회
10. 소유 수량자
또는 여러 번
X{n}+ X, 정확히 n회
X{n,}+ X, at 최소 n 번
X{n,m}+ 소유격의 차이점은 다음과 같습니다. (퍼지 처리가 수행될 때만 적용 가능합니다.) 탐욕적 수량자는 퍼지 일치 문자열 전체를 읽기 때문에 "탐욕적"으로 간주됩니다. 처음으로. 첫 번째 일치 시도(전체 입력 문자열)가 실패하면 일치자는 일치된 문자열의 마지막 문자 뒤에서 한 문자를 취소하고 다시 시도합니다. 일치 항목을 찾거나 더 이상 남은 문자가 없을 때까지 이 프로세스를 반복합니다. 후퇴할 수 있습니다. 표현식에 사용된 수량자에 따라 일치를 시도하는 마지막 문자는 1자 또는 0자입니다.
그러나 꺼리는 수량자는 반대 접근 방식을 취합니다. 즉, 일치하는 문자열의 시작 부분에서 시작한 다음 한 번에 한 문자씩 점진적으로 읽어 일치 항목을 검색합니다. 일치시키려는 마지막 항목은 전체 입력 문자열입니다.
마지막으로 소유 한정자는 항상 전체 입력 문자열을 읽고 하나(단 하나)의 일치를 시도합니다. 탐욕스러운 수량자와 달리 소유격은 결코 후퇴하지 않습니다.
11.논리 연산자
XY  X 다음에 Y
X|Y  X 또는 Y
(X)  X가 캡처 그룹으로 사용됩니다. 예를 들어 (abc)는 abc를 전체적으로 캡처하는 것을 의미합니다
12.역참조
n 일치하는 n번째 캡처 그룹
캡처 그룹은 여는 괄호를 왼쪽에서 오른쪽으로 세어 번호를 매길 수 있습니다. 예를 들어, ((A)(B(C))) 표현식에는 4개의 그룹이 있습니다:
1 (B(C)) 4​​​​(C)
해당 그룹은 다음에서 n으로 참조될 수 있습니다. 예를 들어, (ab)341은 ab34ab를 나타내고, (ab)34(cd)12는 ab34cdabcd를 나타냅니다.
13. 인용
아무것도 안하고 다음 문자를 인용하세요.
Q 아무것도 안 하고 E까지 모두 인용하세요. QE 사이의 문자열은 변경되지 않고 사용됩니다(1.1의 이스케이프 문자 제외). 예를 들어, ab\Q{|}\\E
는 ab{|}\
E Nothing과 일치할 수 있지만 Q
14부터 시작하는 참조를 끝냅니다. 특수 구성(비캡처)
(?:X) X. 비캡처 그룹
(?idmsux-idmsux) 아무것도 없지만 일치 플래그를 on에서 off로 변경합니다. 예: (?i)abc(?-i)def 표현식 이때 (?i)는 대소문자 구분 스위치를 켜고 abc는
idmsux와 일치합니다. 설명은 다음과 같습니다.
-i CASE_INSENSITIVE: US-ASCII 문자 set은 대소문자를 구분하지 않습니다. (?i)
‐d UNIX_LINES: UNIX 줄 바꿈 켜기
‐m MULTILINE: 여러 줄 모드(?m)
UNIX 래핑 동작은 n
WINDOWS 랩 동작은 rn(?s)
‐u UNICODE_CASE: 유니코드는 크기가 아님 민감한 쓰기. (?u)
‐x 주석: 패턴에서 주석을 사용할 수 있으며 패턴에서 공백을 무시하고 끝까지 "#"을 사용합니다(# 다음에 주석이 옵니다). (?x) 예를 들어 (?x)abc#asfsdadsa는 문자열 abc
(?idmsux-idmsux:X) X를 지정된 플래그 on - off를 사용하여 비캡처 그룹으로 일치시킬 수 있습니다. 위와 유사하게 위 표현식은 너비가 0인 긍정적인 예측을 통해 (?i:abc)def 또는 (?i)abc(?-i:def)
(?=X) X로 다시 작성할 수 있습니다. 너비가 0인 긍정적 예측 어설션은 하위 표현식 X가 이 위치의 오른쪽과 일치하는 경우에만 일치를 계속합니다. 예를 들어, w+(?=d)는 문자 뒤에 숫자가 오는 것을 의미하지만 너비가 0인 부정 예측을 통해 숫자(역추적 없음)
(?!X) X를 캡처하지 않습니다. 너비가 0인 부정 예측 어설션. 하위 표현식 X가 이 위치의 오른쪽과 일치하지 않는 경우에만 일치를 계속합니다. 예를 들어 w+(?!d)는 문자 뒤에 숫자가 오지 않으며 숫자가 캡처되지 않음을 의미합니다.
(?<=X) X, 너비가 0인 긍정적인 뒷모습을 통해. 너비가 0인 긍정적인 사후 어설션입니다. 하위 표현식 X가 이 위치의 왼쪽과 일치하는 경우에만 일치가 계속됩니다. 예를 들어, (?<=19)99는 99 앞에 숫자 19가 있지만 앞의 19는 캡처되지 않음을 의미합니다. (역추적 없음)
(? (?>X) X, 독립적인 비캡처 그룹으로 (역추적 없음)
(?=X)와 (?>의 차이점 예를 들어 일치하는 문자열이 abcm
인 경우 , 표현식이 a(?:b|bc)m인 경우 일치할 수 있으며, 표현식이 a(?>b|bc)인 경우에도 일치할 수 있습니다.



위 내용은 Java 정규식에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿