PHP正则表达式小日志

这只是一个日志,记录php正则相关的一些内容。一些常用的,基本定义的字符说明.匹配除了\n外的任意字...

这只是一个日志,记录php正则相关的一些内容。



一些常用的,基本定义的

字符
说明
.匹配除了\n外的任意字符
^匹配字符串开始的位置
$匹配字符串结束的位置
*匹配*号前面子表达式的0次或多次
+
匹配+号前面子表达式的1次或多次
?匹配?号前面子表达式的0次或一次
{n}
匹配{前字符n次
{n,}
匹配{前字符最少n次
{n,m}匹配{前字符最少n次,最多m次


其他一些特殊用的

字符说明
\n
表示换行
\r表示回车
\s
匹配任何空白字符,包括空格、制表符、换页符
\S匹配任何非空白字符
\d匹配数字
\D匹配非数字
\w匹配包括下划线的任意单词字符
\W匹配任何非单词字符


一些组成的,综合运用的

字符说明
a|b
表示a或者b,一般用圆括号或中括号包裹(z|f)ood匹配zood或food
[abcd]匹配所包含的a,b,c,d任意一个字符[abcd]匹配food中的d
[^abc]
匹配未包含a,b,c的字符
[a-z]匹配a到z的任意字符
[^a-z]匹配不为a-z的任意字符
(.*?)href表示匹配到href为止前的任意字符
<a class="aa" href=""
('|")匹配单引号或者双引号
([^>]*)alt
表示匹配到alt前任意非>的字符


附上一些常用的修饰符

修饰符
释义
i (PCRE_CASELESS)如果设置了这个修饰符, 模式中的字母会进行大小写不敏感匹配.
s
(PCRE_DOTALL)如果设置了这个修饰符, 模式中的点号元字符匹配所有字符, 包含换行符. 如果没有这个 修饰符, 点号不匹配换行符. 这个修饰符等同于perl中的/s修饰符. 一个取反字符类比如 [^a]总是匹配换行符, 而不依赖于这个修饰符的设置.
U(PCRE_UNGREEDY)这个修饰符逆转了量词的"贪婪"模式. 使量词默认为非贪婪的, 通过量词后紧跟? 的方式可以使其成为贪婪的. 这和perl是不兼容的. 它同样可以使用 模式内修饰符设置 (?U)进行设置, 或者在量词后以问号标记其非贪婪(比如.*?).




以上仅表示个人观点,仅供本人自行记录,仅供大家参考。

转载请保留出处

评论