2016-06-30 5 views
0

これは、ファイルから電子メールの出現のすべてを置き換えるための私のPHPコードです:sedの正規表現の問題

$pattern = "/[[A-Z0-9._%+-]+[ ]?[\(]?(@|at)[\)]?[ ]?[A-Z0-9.-]+[ ]?[\(]?(\.|dot)[)]?[ ]?[A-Z]{2,4}/i"; 
$string = preg_replace($pattern, "[email protected]", $file); 

、それが仕事です。私はファイルが巨大であることを言及する必要があります。 dbからのエクスポートです。私はこの正規表現をsedコマンドで使用する必要があります:

sed -r -i 's/[[A-Z0-9._%+-]+[ ]?[\(]?(@|at)[\)]?[ ]?[A-Z0-9.-]+[ ]?[\(]?(\.|dot)[)]?[ ]?[A-Z]{2,4}/i/[email protected]/g' 

明らかにこれは動作しません。この仕事をするために誰かがsedコマンドを修正できますか? thx

+2

なぜそれが必要ですか?あなたはコマンドラインからもphpを実行することができます。 – choroba

答えて

0

置換後、i修飾子を正しい位置に移動するだけです。

sed -r -i 's/[[A-Z0-9._%+-]+[ ]?[\(]?(@|at)[\)]?[ ]?[A-Z0-9.-]+[ ]?[\(]?(\.|dot)[)]?[ ]?[A-Z]{2,4}/[email protected]/ig'