2012-03-05 16 views
0

文字列から電子メールアドレスを取得するスクリプトに次の構文があります。電子メールアドレスには - が含まれています。 1234567890 _文字。電子メールアドレスは取得されますが、@記号の前の_文字は検索されません。PHP正規表現Preg置き換えて電子メールを取得する

例えば
preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $value); 

は:文字列内の電子メールアドレスは、上記の構文でそれは

答えて

4

あなたが正規表現に_文字を追加する必要があると思い返し[email protected][email protected]ですそれがsであるW \あなたは "単語文字" を使用して

preg_replace("/<([a-z][\w]*)[^>]*?(\/?)>/i",'<$1$2>', $value); 

を行うことができ、

preg_replace("/<([a-z][_a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $value); 

代わりになりますhorthand

+2

\ w:preg_replace( "/ <([a-z] \ w *)[?>] *?(\ /?)>/i"、 '<$1$2>'、$ value); – Nicocube

関連する問題