编程语言
首页 > 编程语言> > php – 用于提取mailto:地址的Regexp

php – 用于提取mailto:地址的Regexp

作者:互联网

我想要一个reg exp,它可以获取一个字符串块,并找到匹配格式的字符串:

<a href="mailto:x@x.com">....</a>

对于匹配此格式的所有字符串,它将提取mailto:之后找到的电子邮件地址.有什么想法吗?

这是内部应用程序所必需的,而不是任何垃圾邮件发送者的目的!

解决方法:

如果你想匹配整个事情:

$r = '`\<a([^>]+)href\=\"mailto\:([^">]+)\"([^>]*)\>(.*?)\<\/a\>`ism';
preg_match_all($r,$html, $matches, PREG_SET_ORDER);

要紧张和缩短它:

$r = '`\<a([^>]+)href\=\"mailto\:([^">]+)\"([^>]*)\>`ism';
preg_match_all($r,$html, $matches, PREG_SET_ORDER);

第二个匹配组将是它的任何电子邮件.

例:

$html ='<div><a href="mailto:test@live.com">test</a></div>';

$r = '`\<a([^>]+)href\=\"mailto\:([^">]+)\"([^>]*)\>(.*?)\<\/a\>`ism';
preg_match_all($r,$html, $matches, PREG_SET_ORDER);
var_dump($matches);

输出:

array(1) {
  [0]=>
  array(5) {
    [0]=>
    string(39) "test"
    [1]=>
    string(1) " "
    [2]=>
    string(13) "test@live.com"
    [3]=>
    string(0) ""
    [4]=>
    string(4) "test"
  }
}

标签:text-extraction,php,string,regex
来源: https://codeday.me/bug/20190929/1832912.html