在这篇文章中,边肖与你分享了一篇关于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匹配任何空白字符,包括空格、制表符、分页符等。相当于[\f\n\r\t\v]。
\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是向后引用。如果在\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 } \-)?(\(0\d{2,3}\)|0\d{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*13\d{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语句:(选择|删除|删除|创建|更新|插入)。* $
以上是我们边肖整理的所有相关知识点。谢谢你的研究。如果您有任何补充,请联系边肖。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。