来自中心的Php比赛

时间:2018-04-11 14:29:49

标签: php regex

我的字符串如下:

<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匹配并匹配到第一个左右和第一个右侧出现。

1 个答案:

答案 0 :(得分:2)

使用

<a href=([^<]*)test2.com([^<]*)<\/a>

Demo

使用[^<]代替.*?可确保重复仅匹配下一个html标记的文本(以<开头)。具有否定类的贪婪运算符也比具有点的惰性运算符更快。