我有一段代码对于用实际链接替换电子邮件地址非常有用。有时电子邮件地址有多个后缀(即:.co.uk 与 .com)。我能够为这些场景中的每一个创建正则表达式,但是我很好奇是否有任何正则表达式大师知道将两者组合成一个表达式的方法。如果是这样,您能否解释一下您的答案是什么以及为什么有效?
这是我当前的代码 -
$input = "here is a line of text, test@test.com, email@domain.com, email@domain.co.uk here";
preg_match_all('%\w+\@\w+\.\w+\.\w+%', $input, $matches);
$outmatch = Array();
if(is_array($matches[0])){
foreach($matches[0] as $match){
array_push($outmatch,$match);
}
}
$outmatch = array_unique($outmatch);
if(is_array($outmatch)){
foreach($outmatch as $outm){
$input = str_replace($outm,'<a href="mailto:' . $outm . '">' . $outm . '</a>',$input);
}
}
print $input;
2 后缀的表达式:%\w+\@\w+\.\w+\.\w+%
1 后缀的表达式:%\w+\@\w+\.\w+%