정규 표현 식 작은 기록
정규 표현 식 은 검색 을 실행 할 때의 형식 으로 왼쪽 에서 오른쪽으로 일치 합 니 다.
일반적으로 정규 표현 식 은 대소 문자 가 민감 하 다.
1. 메타 문자
정규 표현 식 은 주로 원 문자 에 의존 합 니 다. 원 문 자 는 그들 자체 의 글자 의 뜻 을 대표 하지 않 습 니 다. 그들 은 모두 특별한 의 미 를 가지 고 있 습 니 다.
문자
묘사 하 다.
.
마침표 가 줄 바 꿈 자 를 제외 하고 임의의 단일 문자 와 일치 합 니 다.
[ ]
문자 종류. 괄호 안에 있 는 임의의 문자 와 일치 합 니 다. 순서 에 관심 이 없습니다.
[^ ]
부정 적 문자 종류 입 니 다. 괄호 안의 임의의 문 자 를 제외 하고 일치 합 니 다.
*
일치 > = 0 개 중 복 된 번호 앞 * 문자 입 니 다.
+
일치 > = 1 개 중 복 된 + 번호 앞 문자 입 니 다.
?
표기이전 문 자 는 선택 할 수 있 습 니 다.
{n,m}
num 의 큰 괄호 이전의 문자 (n < = num < = m) 와 일치 합 니 다.
(xyz)
문자 집합, xyz 와 완전히 같은 문자열 과 일치 합 니 다.
|
또는 연산 자, 기호 앞 이나 뒤의 문자 와 일치 합 니 다.
\
전의 문 자 는 보 존 된 문자 와 일치 하 는 데 사 용 됩 니 다. () {}. * +? ^ $\
`
^
시작 줄 부터 일치 합 니 다.
$
끝 부터 일치 합 니 다.
1.1 점 연산 자
.예 를 들 어 표현 식 .ar 은 임의의 문자 와 일치 합 니 다.1.2 문자 집합
예 를 들 어 표현 식
a 과 일치 r.괄호 의 마침 표 는 마침 표를 표시 합 니 다. 표현 식
[Tt]he 일치 the 문자열예 를 들 어 표현 식
The 은 뒤에 따 르 는 ar[.] 의 임 의 문 자 를 제외 하고 일치 합 니 다.1.3 반복 횟수
예 를 들 어 표현 식
ar. 은 0 개 이상 의 a 로 시작 하 는 문자 와 일치 합 니 다. 0 개의 조건 이 있 기 때문에 모든 문자 와 일치 합 니 다.표현 식
[^c]ar 은 줄 의 모든 소문 자로 시작 하 는 문자열 과 일치 합 니 다.ar 문자 와 c 문 자 를 조합 하면 모든 문자 a* 와 일치 할 수 있 습 니 다.[a-z]* 은 빈 칸 과 일치 하 는 기호 * 와 연결 하여 사용 합 니 다. 예 를 들 어 표현 식 . 은 0 이상 의 빈 칸 시작 과 0 이상 의 빈 칸 끝 을 나타 내 는 cat 문자열 과 일치 합 니 다.예 를 들 어 표현 식
.* 은 이니셜 * 로 시작 하여 \s 로 끝 나 며 중간 에 임의의 문자 의 문자열 을 따른다.예 를 들 어 표현 식
\s*cat\s* 은 문자열 c.+t 과 c 이 일치 합 니 다.1.4
t 호예 를 들 어 표현 식
[T]?he 은 최소 2 자리 에서 최대 3 자리 0 ~ 9 의 숫자 와 일치 합 니 다.예 를 들 어
he 최소 두 자리 0 ~ 9 의 숫자 와 일치 합 니 다.예 를 들 어
The 3 자리 숫자 와 일치 합 니 다.1.5
{} 특징 표 군예 를 들 어 표현 식
[0-9]{2,3} 은 0 개 이상 [0-9]{2,} 과 일치 합 니 다.우 리 는 또한
[0-9]{3} 에서 문자 (...) 로 표시 하거나, 예 를 들 어 (ab)* 일치 ab 또는 () 또는 | 로 표시 할 수 있다.1.6
(c|g|p)ar 또는 연산 자예 를 들 어
car 일치 gar 또는 par.1.7 코드 특수 문자
예 를 들 어
| 은 줄 바 꿈 자 를 제외 한 모든 문 자 를 일치 시 키 는 데 사 용 됩 니 다. 문장 에 있 는 (T|t)he|car 과 일치 하려 면 (T|t)he 이하 의 이 예 car 를 선택 적 일치 . 로 써 야 합 니 다.1.8 닻 점
예 를 들 어
. 에서 표현 식 \. 을 사용 하면 결과 \.? 를 얻 을 수 있 습 니 다. 그러나 . 을 사용 하면 결과 가 일치 하지 않 습 니 다. 문자열 abc 에서 ^a 로 시작 하 는 것 이 아니 기 때 문 입 니 다.예 를 들 어
a 는 ^b 또는 abc 로 시작 하 는 문자열 과 일치 합 니 다.예 를 들 어
b 는 ^(T|t)he 로 끝 나 는 문자열 과 일치 합 니 다.2. 약자 문자 집합
정규 표현 식 은 자주 사용 하 는 문자 집합 약 자 를 제공 합 니 다. 다음 과 같 습 니 다.
약자
묘사 하 다.
.
줄 바 꿈 자 를 제외 한 모든 문자
\w
모든 알파벳 숫자 와 일치 합 니 다.
The 과 같 습 니 다.\W
모든 비 자모 숫자, 즉 기호 와 일치 합 니 다.
the\d 일치 하 는 숫자:
(at\.)$\D 일치 하지 않 는 숫자:
at.\s 모든 빈 칸 문자 와 일치 합 니 다. 다음 과 같 습 니 다.
[a-zA-Z0-9_]\S 모든 비 공백 문자 일치:
[^\w]\f 페이지 바 꾸 기 문자 일치
줄 바 꿈 문자 일치
\r
리 턴 문자 일치
\t
탭 문자 일치
\v
수직 탭 문자 일치
\p
CR / LF (같은 값
[0-9] 과 일치 하 며, 도스 줄 종지 부 와 일치 합 니 다.3. 제로 폭 단언 (앞 뒤 예 찰)
일치 하 는 형식 이 다른 형식 에 있 는 지 판단 하기 전에 일치 하 는 결 과 는 이 형식 을 포함 하지 않 습 니 다 (제약 으로 만).
예 를 들 어, 우 리 는
[^\d] 기호 뒤에 있 는 모든 숫자 를 얻 고 싶 습 니 다. 우 리 는 정 후 단언 [\t
\f\r\p{Z}] 을 사용 할 수 있 습 니 다. 이 표현 식 은 [^\s] 시작 과 일치 합 니 다. 그 다음 에 \r
이 문자 들 을 따라 0 번 이상 나타 날 수 있 습 니 다.기호.
묘사 하 다.
?=
먼저 단언 하고 있 습 니 다. - 존재 합 니 다.
?!
마이너스 선언. - 배제.
?<=
정 후 단언 - 존재
?
마이너스 후 단언 - 배제
예 를 들 어 표현 식
$ 과 (?<=\$)[0-9\.]* 이 일치 하고 괄호 에서 우 리 는 정 선행 단언 $, 즉 0,1,2,3,4,5,6,7,8,9,. 과 (T|t)he(?=\sfat) 뒤에 바짝 붙 어 있다 The 고 정의 했다.표현 식
the 은 (?=\sfat) 과 The 일치 하 며 그 다음 에는 따라 가지 않 습 니 다 the.예 를 들 어 표현 식
( )fat 이 (T|t)he(?!\sfat) 과 The 일치 하고 그 앞 에 따라 the 또는 ( )fat.예 를 들 어 표현 식
(?<=(T|t)he\s)(fat|mat) 이 고 그 앞 에 따라 가지 않 습 니 다 fat 또는 mat.4. 표지
표지 도 패턴 수정 문자 라 고 합 니 다. 표현 식 의 검색 결 과 를 수정 할 수 있 기 때 문 입 니 다. 이 표지 들 은 임의로 조합 하여 사용 할 수 있 으 며 전체 정규 표현 식 의 일부분 이기 도 합 니 다.
표지
묘사 하 다.
i
대소 문자 무시.
g
전역 검색. 즉, (첫 번 째 일치 하 는 것 이 아니 라 모든 것 을 되 돌려 줍 니 다)
m
다 중 줄: 닻 점 문자
The the 작업 범 위 는 줄 마다 시작 합 니 다.예 를 들 어 표현 식
(? cat 은 전체 검색 The 을 나타 내 고 뒤의 the 에서 대소 문 자 를 무시 하 는 조건 으로 수정 하면 검색 ^ 과 $ 으로 바 뀌 며 /The/gi 은 전체 검색 을 나타 낸다.
예 를 들 어 표현 식 The 은 임의의 문자 (줄 바 꾸 기 제외) + i 를 검색 하고 모든 결 과 를 되 돌려 줍 니 다.
예 를 들 어 표현 식 the 은 소문 자 The 뒤 에는 소문 자 g 를 나타 내 고 끝 에는 줄 바 꿈 자 를 제외 한 임의의 문 자 를 선택 할 수 있 습 니 다. /.(at)/g 수정자 에 따라 현재 표현 식 은 줄 마다 끝 이 일치 합 니 다.
5. 탐욕 매 칭 타성 매 칭 (Greedy vs lazy matching)
정규 표현 식 은 기본적으로 탐욕 일치 모드 를 사용 합 니 다. 이 모드 에 서 는 가능 한 한 긴 하위 문자열 과 일치 하 는 것 을 의미 합 니 다.우 리 는 at 탐욕 매 칭 모델 을 타성 매 칭 모델 로 바 꿀 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.