关于正则表达式的一些东西
这两天一直在研究匹配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转义字符
转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有
.
、?
、\
等