关于正则表达式的一些东西
这两天一直在研究匹配img标签的事情。然后今天(还是昨天来着)在别处搜索到了这个,感觉还是比较有帮助的。特此转载,侵删。
原文:正则匹配\<img\> - 爱冯果
正则匹配<img>
preg_match_all('/<img(.*?)src=\"(.*?)\"(.*?)>/is', $content, $matches);matches[0]:整个img标签matches[2]:图片的url
正则回顾
$:表示行结尾^:表示行开始 或者 表示排除不符合的字符,^一般放在[]中。如[^1-5],该字符不是1~5之间的数字。|:表示或者.:表示任意字符
?:表示出现0到一次*:表示出现0到多次+:表示出现1到多次{n}:表示出现n次{n,}:表示至少出现n次{n,m}:表示出现n到m次
\d:任意一个十进制数字[0-9]\D:任意一个非十进制数字\s:任意一个空白字符(空格、换行符、换页符、回车符、字表符)\S:任意一个非空白字符\w:任意一个单词字符\W:任意个非单词字符
修饰符:
i:忽略大小写s:单行文本模式m:多文本模式x:忽略空白字符
括号字符()
在正则表达式中小括号的作用主要有:
- 改变限定符如
|、*、^的作用范围
如(my|your)baby,如果没有(),|将匹配的是要么是my,要么是yourbaby,有了小括号,匹配的就是mybaby或yourbaby 进行分组,便于反向引用
反向引用
反向引用,就是依靠子表达式的“记忆”功能,匹配连续出现的字串或是字符。如
(dqs)(pps)\1\2表示匹配字符串dqsppsdqspps转义字符
转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有
.、?、\等