1

どうすれば変換できますか:

ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", " ", $data);

preg_replace("......", " ", $data);

4

1 に答える 1

3

正規表現にあるものはすべて、perl 正規表現に有効であるように見えます。違いは、perl の正規表現は、境界文字 (最初の文字で定義) と、2 番目の境界文字の後にオプションのフラグを想定していることです (これは無視します。使用方法については、preg_match の PHP ページを参照してください)。

言い換えると、 の ereg マッチは に^\d$なります。/^\d$/ここ/で、 は境界文字です。別のキャラクターで開始すると、それがバウンディング キャラクターになります。これは、あなたの場合のよう/に、正規表現で通常の境界文字が頻繁に使用され、エスケープする必要がない場合に役立ちます。たとえば、/^\d$/|^\d$|は同等です。

この特定のケースでは、これを preg_replace として使用できます。

preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|", " ", $data);
于 2012-02-18T02:11:12.283 に答える