>  기사  >  백엔드 개발  >  PHP에서 자주 사용되는 정규식

PHP에서 자주 사용되는 정규식

silencement
silencement앞으로
2020-01-30 22:30:154219검색

PHP에서 자주 사용되는 정규식

정규식은 웹사이트를 만들 때 자주 사용됩니다. 다음은 참고 및 수정을 위한 몇 가지 설명과 예입니다.

숫자 일치

"^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+$" //숫자, 영문 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})(]?)$" //Emil

/^((+?[0-9 ]{2 ,4}-[0-9]{3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[ 0-9 ]+)?$/ //전화번호

"^(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 주소

기타 일치

정규식 일치 한자: [ u4e00-u9fa5]

2바이트 문자 일치(한자 포함): [^x00-xff]

빈 줄과 일치하는 정규식: n[s| ]*r

HTML 태그와 일치하는 정규식 : /<(.*)>.*< 1="">|<(.*)>/

선행 및 후행 공백을 일치시키는 정규식 수식: (^s*)| (s*$)

이메일 주소와 일치하는 정규 표현식: w+([-+.]w+)*@w+([-.]w+)*.w+([ -.]w+)*

정규 표현식 일치 URL: ^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\ w+)*))*(\?\S*) ?$

일치하는 계정이 합법적입니까(문자로 시작, 5-16바이트 허용, 영숫자 밑줄 허용): ^[a-zA-Z][ a-zA-Z0-9_]{4,15 }$

국내 전화번호 일치: (d{3}-|d{4}-)?(d{8}|d{7})?

Tencent QQ 번호 일치: ^[1-9] *[1-9][0-9]*$

정규식 맥락에서 메타 문자 및 해당 동작:

다음 문자를 특수 문자, 리터럴 문자, 역참조 또는 8진수 이스케이프로 표시합니다. 성격.

^은 입력 문자열의 시작과 일치합니다. RegExp 개체의 Multiline 속성이 설정된 경우 ^는 'n' 또는 'r' 뒤의 위치와도 일치합니다.

$는 입력 문자열의 끝과 일치합니다. RegExp 개체의 Multiline 속성이 설정된 경우 $는 'n' 또는 'r' 앞의 위치와도 일치합니다.

*는 이전 하위 표현식과 0회 이상 일치합니다.

+는 이전 하위 표현식과 1회 이상 일치합니다. +는 {1,}과 같습니다.

? 앞의 하위 표현식과 0번 또는 1번 일치합니다. ? {0,1}과 동일합니다.

{n} n은 특정 횟수 n번과 일치하는 음이 아닌 정수입니다.

{n,} n은 최소 n번 일치하는 음수가 아닌 정수입니다.

{n,m} m과 n은 모두 음이 아닌 정수입니다. 여기서 n <= m입니다. 최소 n회, 최대 m회 일치합니다. 쉼표와 두 숫자 사이에는 공백이 있어서는 안 됩니다.

? 이 문자가 다른 한정자(*, +, ?, {n}, {n,}, {n,m}) 바로 뒤에 오면 일치 패턴은 비탐욕적입니다. Non-greedy 모드는 검색된 문자열을 최대한 적게 일치시키는 반면, 기본 Greedy 모드는 검색된 문자열을 최대한 많이 일치시킵니다.

"n"을 제외한 모든 단일 문자와 일치합니다. 'n'을 포함한 모든 문자를 일치시키려면 '[.n]'과 같은 패턴을 사용하십시오.

 (pattern)은 패턴과 일치하여 이 일치 항목을 얻습니다.

(?:pattern)은 패턴과 일치하지만 일치하는 결과를 얻지 못합니다. 즉, 일치하지 않으며 나중에 사용하기 위해 저장되지 않습니다.

(?=pattern) 정방향 조회는 문자열 일치 패턴의 시작 부분에서 검색 문자열을 일치시킵니다. 이는 가져오지 않는 일치입니다. 즉, 나중에 사용하기 위해 일치 항목을 가져올 필요가 없습니다.

(?!pattern) 부정 조회, (?=pattern)과 반대

x|y는 x 또는 y와 일치합니다.

[xyz] 문자 세트.

[^xyz] 부정적인 문자 집합입니다.

[a-z] 문자 범위는 지정된 범위 내의 모든 문자와 일치합니다.

[^a-z] 음수 문자 범위, 지정된 범위 내에 없는 모든 문자와 일치합니다.

b는 단어와 공백 사이의 위치를 ​​나타내는 단어 경계와 일치합니다.

B는 단어가 아닌 경계와 일치합니다.

cx는 x로 지정된 제어 문자와 일치합니다.

d는 숫자와 일치합니다. [0-9]와 동일합니다.

D는 숫자가 아닌 문자와 일치합니다. [^0-9]와 동일합니다.

f는 폼 피드와 일치합니다. x0c 및 cL과 동일합니다.

n은 개행 문자와 일치합니다. x0a 및 cJ와 동일합니다.

r은 캐리지 리턴 문자와 일치합니다. x0d 및 cM과 동일합니다.

s는 공백, 탭, 양식 피드 등을 포함한 모든 공백 문자와 일치합니다. [fnrtv]와 동일합니다.

S는 공백이 아닌 모든 문자와 일치합니다. [^ fnrtv]와 동일합니다.

t는 탭 문자와 일치합니다. x09 및 cI와 동일합니다.

v는 세로 탭 문자와 일치합니다. x0b 및 cK와 동일합니다.

w는 밑줄을 포함한 모든 단어 문자와 일치합니다. '[A-Za-z0-9_]'와 동일합니다.

W는 단어가 아닌 문자와 일치합니다. '[^A-Za-z0-9_]'와 동일합니다.

xn은 n과 일치합니다. 여기서 n은 16진수 이스케이프 값입니다. 16진수 이스케이프 값은 정확히 두 자리 길이여야 합니다.

num은 num과 일치합니다. 여기서 num은 양의 정수입니다. 획득한 일치 항목에 대한 참조입니다.

n은 8진수 이스케이프 값 또는 역참조를 식별합니다. n 앞에 가져온 n개 이상의 하위 표현식이 있으면 n은 역참조입니다. 그렇지 않고 n이 8진수(0-7)이면 n은 8진수 이스케이프 값입니다.

nm은 8진수 이스케이프 값 또는 역참조를 식별합니다. nm 앞에 가져온 하위 표현식이 nm 이상 있으면 nm은 역참조입니다. nm 앞에 최소한 n 개의 가져오기가 오면 n은 역참조이고 그 뒤에 리터럴 m이 옵니다. 이전 조건 중 어느 것도 참이 아니고 n과 m이 모두 8진수(0-7)인 경우 nm는 8진수 이스케이프 값 nm과 일치합니다.

nml n이 8진수(0-3)이고 m과 l이 모두 8진수(0-7)인 경우 8진수 이스케이프 값 nml과 일치합니다.

un은 n과 일치합니다. 여기서 n은 4개의 16진수 숫자로 표시되는 유니코드 문자입니다.

한자와 일치하는 정규식: [u4e00-u9fa5]

2바이트 문자 일치(한자 포함): [^x00-xff]

빈 줄과 일치하는 정규식: n[s|

정규식 일치 HTML 태그: /<(.*)>.*|<(.*)>/

정규식 일치 앞뒤 공백: (^s*) |(s*$)

이메일 주소와 일치하는 정규 표현식: w+([-+.]w+)*@w+([-.]w+)*.w+([-. ]w+)*

정규식 일치 URL: http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

정규식을 사용하여 제한하세요. 웹 양식의 텍스트 상자 입력 내용:

정규식을 사용하여 중국어 입력만 제한: onkeyup="value=value.replace(/[^u4E00-u9FA5] /g,'')" onbeforepaste ="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"

정규식을 사용하면 전체 입력만 제한됩니다. -너비 문자: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text ').replace(/ [^uFF00-uFFFF]/g,''))"

정규식을 사용하여 숫자 입력만 제한합니다: onkeyup="value=value.replace(/[^d]/ g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

정규식 사용 숫자와 영어만 가능 입력됨: onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace( /[^d]/ g,''))"

일반적으로 사용되는 일반 예제

1. 음수가 아닌 정수: ^d+$

2. 양의 정수: ^[0-9]*[1-9][0-9]*$

#🎜 🎜#3. 양수가 아닌 정수: ^((-d+)|(0+))$

4. 0 -9]*[1-9][0-9]*$

5, 정수: ^-?d+$ # 🎜🎜#

6. 음수가 아닌 부동 소수점 수: ^d+(.d+)?$


# 🎜🎜# 7. 양의 부동 소수점 수: ^((0-9)+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9] [0-9 ]*.[0-9]+)|([0-9]*[1-9][0-9]*))$

#🎜 🎜##🎜 🎜#8. 양수가 아닌 부동 소수점 수: ^((-d+.d+)?)|(0+(.0+)?))$

#🎜 🎜#9. 음수 부동 소수점 수: ^(-((양수 부동 소수점 정규 표현식)))$

10. 영문 문자열 : ^[ A-Za-z]+$

11 영문 대문자 문자열 : ^[A-Z]+$#🎜🎜 ##🎜 🎜#
12. 영어 소문자 문자열: ^[a-z]+$


13 . 영어 문자 및 숫자 문자열: ^ [A-Za-z0-9]+$


14 영숫자 및 밑줄 친 문자열: ^w+$# 🎜🎜#

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

16 URL: ^[a-zA-Z]+://(w+(-w+)* )(.(w+(- w+)*))*(?s*)?$

또는: ^http://[A- Za-z0-9]+ .[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$# 🎜🎜#

17, 우편번호: ^[1-9]d{5}$

#🎜🎜 #

18, 중국어: ^[u0391-uFFE5]+$

19, 전화번호: ^(((d{2, 3}))|(d {3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1, 4})?$#🎜 🎜#

20, 휴대폰 번호: ^(((d{2,3}))|(d{3}- ))?13d{9}$


21 2바이트 문자(한자 포함): ^x00-xff

#🎜 🎜## 🎜🎜#22. 선행 및 후행 공백 일치: (^s*)|(s*$) (vbscript와 같은 트림 기능)

#🎜🎜 #

#🎜 🎜#23. HTML 태그 일치: <(.*)>.*< 1="">|<(.*)>
#🎜🎜 #

24. 빈 줄 일치: n[s| ]*r


25. 정보: (h| H)(r|R)(e|E)(f|F) *= *('|")?(w|\|/|.)+('|"| *|> ;)?#🎜🎜 #


26. 정보에서 이메일 주소를 추출합니다: w+([-+.]w+)*@w+([-.] w+)*.w+([ -.]w+)*


27. 정보에서 사진 링크를 추출합니다: (s|S)(r |R)(c|C) *= *('|")?(w|\|/|.)+('|"| *|>)?


28. 정보에서 IP 주소를 추출합니다: (d+).(d+).(d+).(d+)

# 🎜🎜#29. 중국 휴대폰 번호 정보에서 IP 주소를 추출합니다: (86)*0*13d{9}

30. 정보에 있는 중국 유선 전화번호: ((d{3 ,4})|d{3,4}-|s)?d{8}

31. 정보에서 중국 전화번호를 추출합니다(휴대전화 및 유선전화 포함): ((d{3,4})|d{3,4}-|s)?d{7,14}# 🎜🎜#

32 추출된 정보의 중국 우편번호: [1-9]{1}(d+){5}#🎜 🎜#

33. 정보에서 부동 소수점 숫자(예: 소수)를 추출합니다: (-?d*).?d+
# 🎜🎜#

34. 정보에서 숫자를 추출합니다: ( -?d*)(.d+)?


35, IP : (d+).(d+).(d+).(d+)# 🎜🎜#


36, 전화 지역번호: /^0d{2,3} $/


37, Tencent QQ 번호: ^[1-9]*[1-9][0-9]*$#🎜🎜 #

38 , 계좌 번호(문자로 시작, 5~16바이트 허용, 영숫자 및 밑줄 허용): ^[a-zA-Z][a- zA-Z0-9_]{4,15}$

39, 중국어, 영어, 숫자 및 밑줄: ^[u4e00-u9fa5_a-zA- Z0-9]+$

#🎜 🎜#Additional

정규식 일치 중국어 문자: [u4e00-u9fa5]
#🎜 🎜#

2바이트 문자와 일치(한자 포함): [^x00-xff]# 🎜🎜#

은 빈 줄과 일치합니다. 행의 정규 표현식: n[s| ]*r


Regular HTML 태그 일치 표현식: /<(.*)> .*< 1="">|<(.*)>/

선행 및 후행 공백과 일치하는 정규식: (^s*)|(s*$)

IP 주소와 일치하는 정규식: /(d+).(d+).(d+).(d+)/ g / /

정규식 일치 이메일 주소: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

정규식 일치 URL: http://(/[w-]+.)+[w-]+(/[w- ./?%&=]*)?

sql 문 :^(select|drop| 삭제|생성|업데이트|삽입).*$

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

성명:
이 기사는 www.liqingbo.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제