1.介绍
PHP支持两种风格的正则表达式语法:POSIX 和 Perl
这两种表达式是编译PHP时指定的默认风格,但在PHP5.3之后,POSIX 风格被弃用。
2.常用的正则匹配工具
在线匹配工具
regexpal
rubular
3.基础知识介绍
正则表达式是一种描述文本所包含模式的方法。
在 PHP 中,匹配正则表达式更像strstr()函数匹配,而不像相等比较,因为是在一个字符串的某个位置如果不指明则可能在字符串中的任何位置匹配另一个字符串。
例:字符串shop匹配正则表达式shop,它也可以匹配正则表达式h、ho等正则表达式。
除了精确匹配字符外,还可以用特殊字符来指定表达式的元意义 meta-meaning
说这么多基础理念小编自己看着也烦,接下来就让直接进入正题吧!
4.基本字符介绍
分隔符
/
每个表达式必须包含在一対分隔符中,字符串的开始和结束都必须要有匹配的分隔符
例:编写一个匹配shop
的正则表达式 :/shop/
模式选择
|
(选择分支的开始(读为或))
例:/com|edu|net/
匹配com
、edu
或net
字符串模式修饰符
i
使用模式修饰符 将以不区分大小写的方式匹配字符串
例:不区分大小写的方式匹配shop
的正则表达式/shop/i
方括号字符
[]
例如:/[a-z]at/
表示限定第一个字符必须是a-z
之间的字符。脱字符号
^
脱字符号^
用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始处;当脱字符号^
在方括号里面时,表示否;在下面两张表中会具体介绍例子
5.在PCRE正则表达式中,用于方括号外面的特殊字符
6.在PCRE正则表达式中,用于方括号里面的特殊字符
7.用于PCRE风格正则表达式的字符类
8.PCRE正则表达式的特殊字符类型
9.回溯引用
回溯引用(backreference
,也叫反向引用),非PHP程序员一般会放弃学习和使用,我也快放弃了(哭唧唧)。
{% note success no-icon %}
模式的回溯引用是通过一个反斜杠加一个数字(根据上下文不同,也可能多个数字)
它用来匹配多次出现在一个字符串中的相同子表达式,而不用指定要具体匹配的内容{% endnote %}
例:/1是表示第一个子模式回调引用;
/2则是第二个子模式回调引用
10.在邮箱验证中应用
验证邮箱正则表达式:/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]*[\.a-zA-Z0-9]{2,6}+$/
子表达式/^[a-zA-Z0-9_\-.]+
表示“至少由一个或多个字母、数字、下划线、连字符、点号组成并且作为整个字符串开始的字符串”。请注意,当“.”用在一个字符类的开始或结束处时,它将失去其特殊通配符的意义,只能成为一个点号字符。
符号@
匹配字符“@”。
子表达式[a-zA-Z0-9\-]+
与由字母、数字字符和连字符组成的主机名相匹配。请注意,在这里,我们去除了连字符,因为它是方括号内的特殊字符。
字符组合\.
匹配“.”字符。我们在字符类外部使用点号,因此必须对其转义,使其能够匹配一个点号字符。
子表达式[a-zA-Z0-9\-]
匹配域名剩余部分,它包含字母、数字和连字符。
子表达式*[\.a-zA-Z0-9]{2,6}+$/
匹配域名剩余部分,它包含字母、数字和连字符。最后的子表达式最多只能存在2-6个字符,或者不存在
如图
好了,说了这么多,是不是还是一头雾水,虽然说多写多看多用就会了,但是小编还是不太会,只能看懂,稍微会写一点而已哈哈哈哈哈~~~~~
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。