これらのドメイン名を持つすべてのメールをテキストから取得する方法
[@yahoo.com, @google.com, @bla.net]
1つの正規表現で
\b[a-zA-Z0-9._%-]+@(yahoo|google|bla)+.[a-zA-Z]{2,4}\b
また、正規表現を作成またはテストする場合は、Expressoをお勧めします。
\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];
}
これらのドメインを受け入れるように現在の正規表現を変更する方法は次のとおりです。
^[a-zA-Z0-9]+@(?:blabla\.com|google\.com|bla\.net)$
(?:...)
これは、正規表現がリストしたドメインのいずれかを受け入れるように、交互に非キャプチャ グループを使用...|...
します。