php正则表达式使用方法整理集合符号,PHP正则表达式

php正则表达式使用方法整理集合符号,PHP正则表达式,php正则表达式使用方法整理集合

在这篇文章中,边肖与你分享了一篇关于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]

^((-d (。d)?)|(0 (.0 )?))$ //非正浮点数(负浮点数0)

(-([0-9] .[0-9] * [1-9] [0-9] *) | ([0-9] * [1-9] [0-9] * .[0-9]) | ([0]

^(-?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 |

/((0([1-9]{ 1 })|(1[1 | 2])/([0-2]([1-9]{ 1 })|(3[0 | 1])/(d { 2 } | d

^([w-.] )@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]。)))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ //埃米尔

/^(( ?[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})

其他匹配

匹配汉字的正则表达式:[u4e00-u9fa5]

匹配双字节字符(包括汉字):[ 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})?

匹配腾讯QQ号码:[1-9] * [1-9] [0-9] * $

元字符及其在正则表达式上下文中的行为:

将下一个字符标记为特殊字符、原义字符、向后引用或八进制转义字符。

匹配输入字符串的起始位置。如果设置了RegExp对象的Multiline属性,它也会匹配“n”或“r”之后的位置。

$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也会匹配“n”或“r”之前的位置。

*匹配前一个子表达式零次或多次。

匹配前一个子表达式一次或多次。相当于{1,}。

?匹配前一个子表达式零次或一次。相当于{0,1}。

{n} n为非负整数,匹配确定的n次。

{n,} n是匹配至少n次的非负整数。

{n,m} m和n都是非负整数,其中n=m,至少匹配n次,最多匹配m次。逗号和两个数字之间不能有空格。

?当该字符跟在任何其他限定符(*,{n}、{n}、{n,m}),匹配模式不贪心。非贪婪模式尽可能少地匹配搜索到的字符串,而默认贪婪模式尽可能多地匹配搜索到的字符串。匹配除 n 以外的任何单个字符。若要匹配包括“n”在内的任何字符,请使用类似“[。n]。

(模式)匹配模式,得到这个匹配。

(?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匹配任何非空白字符。相当于[ f n r t v]。

t匹配选项卡。相当于x09和cI。

v匹配垂直制表符。相当于x0b和cK。

w匹配任何单词字符,包括下划线。相当于“[A-Za-z0-9_]”。

W匹配任何非单词字符。相当于“[a-za-z0-9 _]”。

xn匹配n,其中n是十六进制转义值。十六进制转义值的长度必须是两位数。

num匹配num,其中num是正整数。对获得的匹配的引用。

n标识八进制转义值或向后引用。如果之前至少获得了n个子表达式,则n是向后引用。否则,如果n是一个八进制数(0-7),那么n就是一个八进制转义值。

nm标识八进制转义值或向后引用。如果nm前面至少有一个子表达式,则nm是向后引用。如果在nm之前至少有n次提取,则n是一个后向引用,后面跟一个字m,如果不满足前面的条件,如果n和m都是八进制数(0-7),nm将匹配八进制转义值nm。

nml如果n是八进制数(0-3),并且m和l都是八进制数(0-7),则它匹配八进制转义值nml。

n匹配n,其中n是由四个十六进制数字表示的Unicode字符。

匹配汉字的正则表达式:[u4e00-u9fa5]

匹配双字节字符(包括汉字):[x00-xff]

匹配空行的正则表达式:n[s| ]*r

匹配HTML标记的正则表达式:/(。*).*| (.*)/

匹配前导空格和尾随空格的正则表达式:(s *) | (s * $)

匹配电子邮件地址的正则表达式:w ([-。]w )*@w ([-。]w )*。w ([-。]w )*

匹配URL的正则表达式:http://([w-]。)[w-] (/[w-。/?%=]*)?

使用正则表达式限制web表单中文本框的输入;

正则表达式只能输入汉字:onkeyup= value=value . replace(/[u4e 00-u9fa 5]/g, ) onbeforepoast= clipboard data . setdata( text ,clipboard data.getdata (text )。替换(/[

正则表达式只能输入全角字符:onkeyup= value=value . replace(/[uff 00-ufff]/g, ) onbeforepoast= clipboard data . setdata( text ,clipboard data.getdata (text )。替换(/[

只能用正则表达式输入数字:onkeyup= value=value . replace(/[d]/g, ) onbeforepoast= clipboard data . setdata( text ,clipboard data.getdata (text )。替换(/[d]/g,)

只能用正则表达式输入数字和英文:onkeyup= value=value . replace(/[w]/g, ) onbeforepast= clipboard data . setdata( text ,clipboard data.getdata (text )。替换(/[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] * [0-9] * [0-9]) | ([0]

8.非正浮点数:((- d d)?)|(0 (.0 )?))$

9.负浮点数:(-(正浮点数正则表达式))$

10.英文字符串:[a-za-z] $

1.英文大写字符串:[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 } -)?13美元

21.双字节字符(包括汉字): x00- xff

22.匹配前导空格和尾随空格:( s *) | ( s * $)(类似vbscript的trim函数)

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.从信息中提取中国的手机号码:(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.电话区号:/0 d {2,3} $/

37.腾讯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] $

附加

匹配汉字的正则表达式:[u4e00-u9fa5]

匹配双字节字符(包括汉字):[ x00- xff]

匹配空行的正则表达式:n[s| ]*r

匹配HTML标记的正则表达式:/(。*).* 1=|(.*)/

匹配前导空格和尾随空格的正则表达式:( s *) | ( s * $)

匹配IP地址的正则表达式:/(d )。(d )。(d )。(d )/g //

匹配电子邮件地址的正则表达式: w ([-。] w) * @ w ([-。] w) * 。 w ([-。] w) *

匹配URL的URL的正则表达式:http://(/[w-] 。)[w-] (/[w-。/?%=]*)?

Sql语句:(选择|删除|删除|创建|更新|插入)。* $

以上是我们边肖整理的所有相关知识点。谢谢你的研究。如果您有任何补充,请联系边肖。

php正则表达式使用方法整理集合符号,PHP正则表达式