>  기사  >  백엔드 개발  >  정규식의 기본 구문에 대한 튜토리얼

정규식의 기본 구문에 대한 튜토리얼

巴扎黑
巴扎黑원래의
2017-09-21 11:46:151455검색

다음 편집기에서는 정규식의 기본 문법에 대한 자세한 응용 설명을 제공합니다(꼭 읽어야 할 기사). 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 에디터를 따라가며 함께 살펴볼까요

1. 정규식의 기본 문법

2개의 특수 기호 '^'와 '$'. 그들의 기능은 각각 문자열의 시작과 끝을 나타내는 것입니다. 예는 다음과 같습니다.

"^The": "The"로 시작하는 모든 문자열을 나타냅니다("There", "The cat" 등).

"of 절망$": "of 절망으로 끝나는 모든 문자를 나타냅니다. " String;

"^abc$": "abc"로 시작하고 끝나는 문자열을 나타냅니다. 하하, "abc" 자체만 있습니다.

"notice": "notice"가 포함된 모든 문자열을 나타냅니다.

마지막 예와 같이 두 개의 특수 문자를 사용하지 않으면 찾으려는 문자열이 검색된 문자열의 어떤 부분에도 있음을 나타내는 것입니다. 즉, 맨 위에 위치하는 것이 아닙니다.

기타 기호로는 '*', '+', '?'가 있는데, 이는 문자 또는 문자 시퀀스가 ​​반복적으로 나타나는 횟수를 나타냅니다. 각각 "없음 또는 그 이상", "한 번 이상" 및 "없음 또는 한 번"을 의미합니다. 다음은 몇 가지 예입니다.

"ab*": 문자열에 a 뒤에 0개 또는 여러 개의 b가 있음을 나타냅니다. ("a", "ab", "abbb",...);

"ab+": 문자열에 a가 하나 이상 있음을 나타냅니다.

"ab?": 문자열을 나타냅니다. a 뒤에 0개 또는 1개의 b가 있습니다.

"a?b+$": 문자열 끝에 0개 또는 1개의 a가 있고 1개 또는 여러 개의 b가 있음을 의미합니다.

반복 범위를 나타내기 위해 중괄호로 묶인 범위를 사용할 수도 있습니다.

"ab{2}": 문자열에 a 뒤에 2개의 b가 있음을 나타냅니다("abb").

"ab{2,}": 문자열에 a 뒤에 최소한 2개의 b가 있음을 나타냅니다.

"ab{3,5}": 문자열에 a 다음에 3~5b가 있음을 나타냅니다.

범위의 하한을 지정해야 합니다(예: "{,2}" 대신 "{0,2}"). 또한 '*', '+' 및 '?'는 "{0,}", "{1,}" 및 "{0,1}"과 동일하다는 것을 알 수 있습니다.

"또는" 연산을 의미하는 '¦'도 있습니다.

"hi¦hello": 문자열에 "hi" 또는 "hello"가 있음을 의미합니다.

"(b¦cd)ef": "bef" 또는 "cdef"를 의미합니다.

"(a¦b)*c": "a"와 "b" 뒤에 "c"가 오는 혼합 문자열을 나타냅니다.'

"a.[0-9]": 문자열에 "a" 뒤에 임의의 문자와 숫자가 있음을 나타냅니다.

"^.{3}$": 세 문자로 구성된 문자열을 나타냅니다. 길이는 3자입니다.)

대괄호는 특정 문자가 문자열의 특정 위치에 나타날 수 있음을 나타냅니다.

"[ab]": 문자열에 "a" 또는 "b"가 있음을 나타냅니다. to "a¦b");

"[a-d]": 문자열에 소문자 'a' ~ 'd' 중 하나가 포함되어 있음을 나타냅니다("a¦b¦c¦d" 또는 "[abcd ]"와 동일). ;

"^[a-zA-Z]": 문자로 시작하는 문자열을 나타냅니다.

"[0-9]%": 백분율 기호 앞에 있는 숫자를 나타냅니다. -zA-Z0-9]$": 문자열이 쉼표로 끝나고 그 뒤에 문자나 숫자가 오는 것을 나타냅니다.

대괄호 안에 '^'를 사용하여 원하지 않는 문자를 나타낼 수도 있습니다. '^'는 대괄호 안의 첫 번째 문자여야 합니다. (예: "%[^a-zA-Z]%"는 두 개의 퍼센트 기호 사이에 문자가 나타나지 않아야 함을 의미합니다.)

그대로 표현하려면 "^.$()¦*+?{" 문자 앞에 이스케이프 문자 ''를 추가해야 합니다.

대괄호 안에는 이스케이프 문자가 필요하지 않습니다.

2. 정규식 확인은 텍스트 상자의 입력 문자 유형을 제어합니다

1. 숫자와 영어만 입력할 수 있습니다:

2. 숫자만 입력할 수 있습니다:

3. 전각만 가능 문자를 입력할 수 있습니다 :

4. 한자만 입력할 수 있습니다:

3. 정규식 응용예제 인기 설명

//전체가 숫자로만 구성되어 있는지 확인

/^[0 -9 ]{1,20}$/

^은 ^

$ 바로 다음에 시작 문자가 규칙과 일치해야 함을 의미합니다. 시작 문자는 $

[ ] 직전에 규칙과 일치해야 함을 의미하며 선택적 문자 집합입니다.

[0-9]는 필수 문자 범위가 0~9임을 의미합니다.

{1,20}은 숫자 문자열의 합법적인 길이가 1~20, 즉 문자 발생 횟수의 범위임을 의미합니다. [0-9]는 1~20번입니다.
/^ 및 $/는 문자열의 하위 문자열만 일치시키는 것이 아니라 전체 문자열이 정의된 규칙과 완전히 일치해야 함을 나타내기 위해 쌍으로 사용해야 합니다.

//로그인 이름 확인: 숫자, "_", "."를 포함하여 문자로 시작하는 5~20개의 문자열만 입력할 수 있습니다.

/^[a-zA-Z]{1}([ a-zA -Z0-9]|[._]){4,19}$/

^[a-zA-Z]{1}는 첫 번째 문자가 문자여야 함을 의미합니다.

([a-zA-Z0-9]|[._]){4,19}는 길이가 4~9자리 문자열인 두 번째 숫자(이전 표현식 바로 뒤에 오기 때문에)부터 시작한다는 의미입니다. 대문자, 소문자, 숫자 또는 특수문자 집합[._]으로 구성되어야 합니다.

//사용자 이름 확인: 문자로 시작하는 1~30자까지만 입력 가능

/^[a-zA-Z]{1,30}$/

//비밀번호 확인: 6~20자만 입력하세요 문자, 숫자 및 밑줄

/^(w){6,20}$/

w: 문자, 숫자 또는 밑줄 문자를 일치시키는 데 사용됩니다

//일반 전화 및 팩스 번호 확인: OK "+로 시작합니다. " 또는 숫자이며 "-" 및 "

/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ] )를 포함할 수 있습니다. {1,12})+$/

d: 0에서 9까지의 숫자를 일치시키는 데 사용됩니다.

"?" 메타 문자는 다음과 같은 문자열과 일치하기 위해 선행 객체가 대상 객체

에 0번 또는 한 번 나타나야 함을 규정합니다. +123 -999 999; 123 999 999; +123 999999 등

//URL 확인

/^http[s]{0,1}://.+ $/ 또는 / ^http[s]{0,1}://.{1,n}$/ (url 문자열의 길이가 length(“https://”) + n임을 나타냄)

/: 문자를 나타냄 " /".

. 모든 문자 집합을 나타냅니다.

+는 1부터 양의 무한대까지의 {1,}과 동일합니다.

4. 정규식 적용(공통 부분)

"^d+$" //음수가 아닌 정수(양의 정수 + 0)

"^[0-9]*[1-9] [0-9]*$" //양의 정수

"^((-d+)|(0+))$" //양이 아닌 정수(음의 정수 + 0)

"^-[0-9 ] *[1-9][0-9]*$" //음의 정수

"^-?d+$" //정수

"^d+(.d+)?$" //음이 아닌 부동 소수점 숫자 (양수 부동 소수점 + 0)

"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1- 9][ 0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$" //양수 부동 소수점 숫자

"^( (-d+( .d+)?)|(0+(.0+)?))$" //양수가 아닌 부동 소수점 수 (음의 부동 소수점 수 + 0)

"^(-(([0- 9]+.[0- 9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)| ([0-9]* [1-9][0-9]*)))$" //부동소수점수

"^(-?d+)(.d+)?$" //부동소수점수

"^[A-Za- z]+$" //영문 26자로 구성된 문자열

"^[A-Z]+$" //영문 대문자 26자로 구성된 문자열

"^[a-z] +$" / /영문 소문자 26자로 구성된 문자열

"^[A-Za-z0-9]+$" //숫자와 영문 26자로 구성된 문자열

"^w+$" // A 숫자, 영문 26자 또는 밑줄로 구성된 문자열

"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"   // 이메일주소

"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"  //url

/^( d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1- 9]{ 1}))|(3[0|1]))$/ // 연-월-일

/^((0([1-9]{1}))|(1[1| 2]) )/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 월 /일/ 연도

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1, 3}. )|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" // 에밀

"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //전화번호

" ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[ 0-5 ]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d| 25[0 -5])$" //IP 주소

^([0-9A-F]{2})(-[0-9A-F]{2}){5}$ //MAC 주소 정규식

^[-+]?d+(.d+)?$ //값형 정규식

위 내용은 정규식의 기본 구문에 대한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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