정규 표현 식 작은 기록
정규 표현 식 은 검색 을 실행 할 때의 형식 으로 왼쪽 에서 오른쪽으로 일치 합 니 다.
일반적으로 정규 표현 식 은 대소 문자 가 민감 하 다.
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에 따라 라이센스가 부여됩니다.