1

テキスト内の電子メールアドレスを検索するための単純な正規表現がありますが、エラーは表示されませんが、機能しません。

$addr=array();
$t='Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean fermentum risus id tortor. Morbi leo mi, nonummy eget tristique non, rhoncus non leo. Donec quis nibh at felis congue commodo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos aaa@bbb.com. Aliquam ccc@ddd.net ornare wisi eu metus.';
if(preg_match_all('~[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}~',$t,$addr, PREG_SET_ORDER)){
  echo 'found';
}

私も見つけたこのバージョンを試しましたが、どちらも機能しませんでした:

if(preg_match_all('/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/',$t,$addr, PREG_SET_ORDER)){
4

3 に答える 3

1

すべて大文字のメールを照合しています。実行するか[A-Za-z]、大文字と小文字を区別しないフラグをオンに設定する必要がありますpreg_match

于 2012-05-15T00:01:40.230 に答える
1

これは一致パターンでも機能し、最短です。

[0-z.%-]+@[0-z.-]+\.[A-z]{2,4}

これは、、、、およびをカバーするために機能0-zしますA-Z。また、AzはAZおよびazをカバーします。a-z0-9_

私はルビーで開発しており、 http://rubular.com/r/PdbH1BjWMsでこれを「実際に」見ることができます。

于 2012-05-15T00:20:33.787 に答える
0

小文字のクラスを含めます。

if(preg_match_all('~[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[A-Z]{2,4}~',$t,$addr, PREG_SET_ORDER)){
  echo 'found';
}

... azに注意してください。

于 2012-05-15T00:04:51.230 に答える