您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP核心技术与最佳实践之正则表达式婚配规则

2024/3/20 21:03:49发布38次查看
php核心技术与最佳实践之正则表达式匹配规则
php核心技术与最佳实践之正则表达式匹配规则
本文介绍几种常用的匹配规则。
1.     字符组
查找数字、字母、空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符集合,方法很简单, 就是在方括号内列出它们。
例如:[aeiou]匹配任何一个英文元音字母,[.*?]匹配标点中的一个。注意此时方括号内的元字符失去了特殊意义。
也可以指定字符范围,例如[0-9]的含义和\d完全一致:代表一位数字;同理[a-za-z0-9]等同于\w;
字符组很简单,但是一定要弄清楚字符组中什么时候需要转义。
2.      转义
如果想要查找或匹配元字符本身,比如查找*、?等就出现问题:没办法指定,因为它们会被解释成别的意思。这时就需要\来取消这些字符的特殊意义。这叫转义。
在php中使用反斜杠(\)表示转义,\q和\e也可以在模式中忽略正则表达式的元字符。比如:
\d +\q.$.\e$
以上表达式先匹配一个或多个数字,紧接着一个.点号,然后一个$,再然后一个.点号,最终是字符串末尾。也就是说\q和\e中的元字符会被作为普通字符来匹配。
3.      反义
有些时候,查找的字符不属于某个字符类,或者表达式和已知定义相反,(比如除了数字以外其他字符),这时需要用到反义。
常用反义:
常用反义
描述
\w
匹配任意不是字母、数字、下划线、汉字的字符
\s
匹配任意不是空白符的字符
\d
匹配任意非数字的字符
\b
匹配不是单词开头或结束的位置
[^x]
匹配除了x以外的任意字符
反义有一个比较明显的特征,就是和一些已知元字符相反,并且为大写形式。比如”\d”就表示非数字。
1)    不包含空白符的字符串
\s+
2)    用尖括号扩起来、以a开头的字符串:
] +>
提示:
“^”这里是非的意思,不是开头的。如何区分?
表示开头的 ^只能用在正则表达式的最前端,而表示取反的^只能用在字符组中,即只在中括号内出现。
注意:
不要随意使用反义,因为反义无形中扩大范围,而使自己没有考虑到。
4.     分支
分支就是存在多种可能的匹配情况。
(c|h|f|to|)cat
其中括号里的表达式将视为一个整体,分支条件指有几种规则,无论满足哪一种规则都能匹配,具体方法是使用“|”方法把不同的规则分隔开。
5.     分组
重复单个字符只需直接在字符后面加上限定符,但如果想重复多个字符?
常用的分组语法:
类别
语法
描述
捕获
(exp)
匹配exp,并捕获文本到自动命名的组里
(?exp)
匹配exp,并捕获文本到name的组里
(?:exp)
匹配exp,不捕获匹配的文本
零宽断言
(?=exp)
匹配exp前面的位置
(?
匹配exp后面的位置
(?!exp)
匹配后面不是exp的位置
(?
匹配前面不是exp的位置
注释
(?#comment)
注释,不对正则有任何影响
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product