1

\ただし、月曜日は、後のないものすべてを置き換える正規表現を取得するにはどうすればよい"ですか?

私が試してみました:

$toBeCleaned = preg_replace('/\\(?!")/',"\\\\",$toBeCleaned);

もちろん、これは次のように述べています。

preg_replace(): Compilation failed: unmatched parentheses at offset 5

これを機能させることができます:http://www.solmetra.com/scripts/regex/index.php問題ありません。

しかし、私はそれを次のように変更しました:

$toBeCleaned = preg_replace('/\\\(?!")/',"\\\\",$toBeCleaned);

これはエラーにはなりませんが、同時に、もちろんエスケープが行われているため、機能しません。

月曜日の朝、なぜそれが仕事をすることができないのか理解できないようです。

4

2 に答える 2

2

これは、「後」がないすべての円記号を置き換える式です。

$toBeCleaned = preg_replace('/\\\[^"]/', 'SLASH', $toBeCleaned);

しかし、質問は何を達成しようとしていますか?たぶんもっと良い方法があります、正規表現は必ずしも答えではありません。

于 2013-01-21T09:20:21.933 に答える
0

@hankの正規表現を実際に単語を使用してテキストを置き換えて実行した後、正規表現が完全に正常に機能していることがわかりました。正しく置き換えられていませんでした。だから私はそれを次のように変更しました:

$toBeCleaned = preg_replace('/\\\(?!")/',"\\\\\\",$toBeCleaned);

これは実際に機能します。

このページで説明されているように、否定された文字クラスを使用すると問題が発生する可能性があるため、私もこの回答を受け入れています:http: //www.regular-expressions.info/charclass.html

私は月曜日が嫌いです。

于 2013-01-21T09:28:10.110 に答える