如何在正则表达式中获取http和mailto链接

时间:2014-05-01 23:30:39

标签: php regex email

我正在尝试修复WP插件上的错误。它使用此表达式来解析URL:

$anchorPattern = '/\'\"\/\/([^\'\"]+?)\'\">(.*?)</a>/i';

问题在于mailto:urls,它们未正确匹配。 例如,当代码如下:

<a href="mailto:email@email.com" target="_blank"><img src="email.png"></a>

第二场比赛是

mailto:email@email.com" target="_blank"><img src="http:

因为正则表达式只在//停止。如何更改正则表达式以使第二个匹配为'mailto:'?

正则表达式测试:http://regex101.com/r/sY4bW8

2 个答案:

答案 0 :(得分:1)

您可以按如下方式修改正则表达式:

<a (.*?)href=[\'\"](.*?:)([^\'\"]+?)[\'\"](.*?)>(.*?)<\/a>

现在它将匹配mailto:

Demo

答案 1 :(得分:1)

Vêseéissoque vc quer:

preg_match('/<a.*?href=["\'](.*?)["\'].*?><img.*?src=["\'](.*?)["\'].*?>/i', $html)

Grupo1éouurl
Grupo 2 a source da imagem。

http://regex101.com/r/dR5cQ6