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 回答