0

だから、私はある種のデータベースを持っていて、正規表現を使ってそれらすべての行を処理しています。しかし問題は、電子メール セクションに単一の「@」記号がないか、またはまったくないことです。ドメインの前に @ を付け (あまり多くありません)、不要な @ をすべて削除することにしました。このhttp://www.phpliveregex.com/のようないくつかのオンライン正規表現コンストラクターを使用します。ドメインの前に @ を置くための次の正規表現を取得しました。

preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline); 

しかし、それはうまくいきません。例えば:

CynthiaELopezdodgit.com

このスクリプトの後も変更されません。

何が間違っている可能性がありますか?私はPHPが初めてなので、問題が本当にばかげている場合は申し訳ありません:)

4

2 に答える 2

7

戻り値を取得する必要があります

$newLine = preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline);

$newLine には @ のある電子メールが含まれ、$myline には @ のない電子メールが引き続き保持されます。preg_replace は元の変数を変更しません

于 2013-04-19T14:37:36.373 に答える
2

あなたの正規表現は正常に動作します。正しい変数を見ていることを確認します。preg_replace変数を上書きしませんが、代わりにそれを返します。

実際の例: http://codepad.org/PSxK7Jtv

于 2013-04-19T14:39:51.110 に答える