Php Escape\不在正则表达式中转义组
但是,星期一,我如何获得一个正则表达式来替换所有在之后没有“”的Php Escape\不在正则表达式中转义组,php,regex,Php,Regex,但是,星期一,我如何获得一个正则表达式来替换所有在之后没有“”的\ 我试过: $toBeCleaned = preg_replace('/\\(?!")/',"\\\\",$toBeCleaned); 这当然是说: preg_replace(): Compilation failed: unmatched parentheses at offset 5 问题是我可以让它工作:很好 但我将其修改为: $toBeCleaned = preg_replace('/\\\(?!")/',"\\\\"
\
我试过:
$toBeCleaned = preg_replace('/\\(?!")/',"\\\\",$toBeCleaned);
这当然是说:
preg_replace(): Compilation failed: unmatched parentheses at offset 5
问题是我可以让它工作:很好
但我将其修改为:
$toBeCleaned = preg_replace('/\\\(?!")/',"\\\\",$toBeCleaned);
这不会出错,但同时,当然由于转义完成,不起作用
在周一早上,我似乎无法理解为什么我不能让它完成它的工作。这里有一个表达式,它将替换所有没有“after”的反斜杠
然而,问题是,你想实现什么?也许有更好的方法,正则表达式并不总是答案。在运行@hank的正则表达式后,实际上是用一个词来替换文本,我发现我的正则表达式工作得非常好,只是没有正确替换。所以我把它改成:
$toBeCleaned = preg_replace('/\\\(?!")/',"\\\\\\",$toBeCleaned);
这确实有效
我也接受这个答案,因为使用本页提到的否定字符类可能会出现问题:
我讨厌星期一。谢谢这有助于发现我的正则表达式的问题,尽管此页面确实说明了负数字符类的问题,所以我决定保留我的正则表达式:
$toBeCleaned = preg_replace('/\\\(?!")/',"\\\\\\",$toBeCleaned);