>  기사  >  웹 프론트엔드  >  정규식 요약(실용 요약)

정규식 요약(실용 요약)

php中世界最好的语言
php中世界最好的语言원래의
2018-03-30 13:42:241435검색

이번에는 정규식(실용요약)을 가져왔습니다. 실제 정규식을 사용할 때 주의사항은 무엇인가요?

정규 표현식은 일반 문자(예: a~z 문자)와 특수 문자(메타 문자라고 함)로 구성된 텍스트 패턴입니다. 패턴은 텍스트 본문을 검색할 때 일치시킬 하나 이상의 문자열을 설명합니다. 정규식은 검색된 문자열과 문자 패턴을 일치시키는 템플릿 역할을 합니다.

아래 편집기는 정규 표현식에 대한 몇 가지 지식 사항을 요약합니다.

1. 메타 문자

[특별한 의미를 지닌 메타 문자]
d -> 9는 [0-9]와 동일하고 그 반대는 D -> 0-9를 제외한 모든 문자와 일치합니다.
w -> 숫자 0-9, a-z, A-Z, _ 또는 [0-에 해당하는 문자와 일치합니다. 9a-zA-Z_]
s -> 공백 문자(공백, 탭...)와 일치합니다.
b -> 단어의 경계와 일치합니다.
n -> newline
.> n을 제외한 모든 문자와 일치
$ -> 메타 문자로 끝남
x|y -> ] -> x, y, z 중 하나
[^xyz] -> xyz 중 하나 제외
[a-z] - > a-z의 모든 문자와 일치
[^a-z] ->
() -> 정규식으로 그룹화


참고:

1) []에 대해 a. [+] -> ] -> 12-65가 아니라 1/2-6/5입니다.

2) ()

정보 a. 그룹화 기능은 기본
우선순위

를 변경하는 것입니다. 예: /^18| 19$/, 181, 189, 119, 819, 1819... 모두 준수합니다. 우리가 생각하는 18 또는 19 대신 /^(18|19)$/로 변경하면 간단히 18 또는 19

b. 정규 경기의 내용을 캡처하는 동안 그룹 경기의 내용도 캡처할 수 있습니다. - >그룹 캡처

c. 그룹 참조, 예: /^(d)(w)21$/, 여기서 2는 동일합니다. 1은 첫 번째 그룹과 동일합니다. 예를 들어 "0aa0"은

[수량을 나타내는 수량자 메타문자]
* -> 0 ~ 배수
+ -> ? -> 0 ~ 1

{n } -> n ~ 여러 번 나타남

{n,m} -> n ~ m 번 나타남 참고:


1) ?에 대한 몇 가지 상황

a. 비수량자 메타문자 뒤에 넣으세요. 즉, 0~1번 나타납니다. b. 수량자 메타문자 뒤에 넣으세요. 예를 들어, reg=/d+/; reg.exec("2015 ") -> "2015" 하지만 reg=/d+?/;
c. 추가 ?: 그룹 시작 부분에 현재 그룹만 일치함을 의미합니다. 캡처가 수행되지 않습니다. 예:/^(?:d+)$/
d. 그룹 시작 부분에 ?=를 추가합니다. , 정방향 검색(예:/^abcdef(?=1|2)$/ "abcdef1" 및 " abcdef2"만 일치합니다.

e. 그룹 시작 부분에 ?!를 추가합니다. 예: /^abcdef(?!1|2)$/ "abcdef1"과 "abcdef2"가 일관성이 없다는 점을 제외하면 나머지는 "abcdef (Anything)"만 있으면 됩니다.

[자체 의미를 나타내는 메타 문자]

와 일치합니다. 위의 내용 외에도 리터럴 모드에서 표시되는 다른 문자는 고유한 의미를 나타냅니다.

var num=12 ;

var reg=/^w"+num+"$/; ->여기서 "+num+"는 변수의 값을 이어붙이지 않고, 여기서는 " 또는 + 이면 메타문자입니다

-> 이어붙여야 하는 분들을 위해 문자열과 변수의 경우 인스턴스 메서드만 사용하여 정규식을 만들 수 있습니다

2, 수식어

i ->ignoreCase는 문자의 대소문자를 무시합니다.
g -> 전역 전역 일치(g를 추가하면 일반 캡처 중 게으름을 해결할 수 있습니다)
m -> 여러 줄 여러 줄 일치

3.

1) 유효한 숫자

var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
2) 이메일 주소

 var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
3) 전화번호

 var reg = /^1\d{10}$/;
4) 연령 18~65세

 var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;
5) 중국어 이름

 var reg = /^[\u4e00-\u9fa5]{2,4}$/;
6) 신분증

 var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/;
 //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)

4. 정규 매칭

reg.test([string]) ->true는 매칭 성공 false->실패 매칭을 의미합니다

5. 정규 캡처

1)reg.exec([string] )

-> 첫 번째 일치, 일치가 성공하면 캡처하고 일치에 실패하면 null이 반환됩니다.

-> 일반 캡처는 게으르고 탐욕적입니다. 게으름 문제를 해결하려면 정규식 끝에 전역 수정자 g
를 추가하세요. -> 탐욕 문제를 해결하려면 수량자 뒤에 ?

를 추가하세요. 이 기사에서 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 기타 관련 기사를 주목하세요!

추천 도서:

정규 패턴 수정자 사용에 대한 자세한 설명

정규식의 새로운 기능은 무엇인가요

위 내용은 정규식 요약(실용 요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.