我的字符串如下:
<a href="test1.com">test1</a><a href="test2.com">test2</a>
我的正则表达式如下:
<a href=(.*?)test2.com(.*?)<\/a>
和我的PHP代码:
preg_match('/<a href=(.*?)test2.com(.*?)<\/a>/s',$game,$mat);
所以我希望匹配整个事件<a href="test2.com">test2</a>
,而是从<a href
的开头匹配,我得到以下内容:
<a href="test1.com">test1</a><a href="test2.com">test2</a>
如何从test2.com
匹配并匹配到第一个左右和第一个右侧出现。
答案 0 :(得分:2)
使用
<a href=([^<]*)test2.com([^<]*)<\/a>
使用[^<]
代替.*?
可确保重复仅匹配下一个html标记的文本(以<
开头)。具有否定类的贪婪运算符也比具有点的惰性运算符更快。