在字符串中搜索具有特定域名的电子邮件地址

时间:2012-06-12 20:47:48

标签: php regex

如何从文本中获取具有这些域名的所有电子邮件

[@yahoo.com, @google.com, @bla.net] 

在一个regx中

3 个答案:

答案 0 :(得分:2)

\b[^ ]+@(yahoo\.com|google\.com|bla\.net)\b

匹配:

enter image description here

在php中,这就变成了

preg_match_all('/\b[^@]*@(yahoo\.com|google\.com|bla\.net)\b/', $subject, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
    # Matched text = $result[0][$i];
}

答案 1 :(得分:2)

以下是修改当前正则表达式以接受这些域的方法:

^[a-zA-Z0-9]+@(?:blabla\.com|google\.com|bla\.net)$

这会使用非捕获组(?:...)进行替换...|...,以便您的正则表达式接受您列出的任何域。

答案 2 :(得分:2)

\ B [A-ZA-Z0-9 ._% - ] + @(雅虎|谷歌| BLA)。+ [A-ZA-Z] {2,4} \ B'/ P>

如果您想构建或测试正则表达式,我还建议Expresso