如何从文本中获取具有这些域名的所有电子邮件
[@yahoo.com, @google.com, @bla.net]
在一个regx中
答案 0 :(得分:2)
\b[^ ]+@(yahoo\.com|google\.com|bla\.net)\b
匹配:
在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。