Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Escape\不在正则表达式中转义组_Php_Regex - Fatal编程技术网

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);