Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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正则表达式匹配前面没有特定字符的字符_Php_Regex - Fatal编程技术网

php正则表达式匹配前面没有特定字符的字符

php正则表达式匹配前面没有特定字符的字符,php,regex,Php,Regex,我有一个字符串,其中有带双引号的部分。我试图用单引号替换所有的双引号,除了那些带转义的部分:\“ 我正在尝试构建一个正则表达式,它匹配所有的“,除了像\” 因此,当我使用preg\u replace时,我将得到如下结果 "love" -> 'love' "John said \"HI\"" - > 'John said \"HI\"' 我试过以下方法,但效果正好相反 [<^\\]" [您可以使用负查找: (?<!\\)" 这就产生了 'love' 'John s

我有一个字符串,其中有带双引号的部分。我试图用单引号替换所有的双引号,除了那些带转义的部分:
\“

我正在尝试构建一个正则表达式,它匹配所有的
,除了像
\”

因此,当我使用
preg\u replace
时,我将得到如下结果

"love" -> 'love'

"John said \"HI\"" - > 'John said \"HI\"' 
我试过以下方法,但效果正好相反

[<^\\]"

[您可以使用负查找:

(?<!\\)"
这就产生了

'love'
'John said \"HI\"'

请注意,反斜杠在
PHP
中也需要转义,因此您在这里总共需要四个反斜杠。

简单说明:您将无法在
中检测到具体转义的
”,John说“嗨”
,“\”不再在字符串中。如果不转义,则相反,这将是一个语法错误。或者您是否有
“John说\\\\\\“嗨\\\\”
?@Jan这个问题显然是重复的,已经有了一个很好的解决方案,为什么不关闭?你的答案无论如何都是错误的。@WiktorStribiżew:为什么应该是错误的?顺便说一句,你的答案有四次向上投票,所以已经被问了无数次了(问题是回溯),为什么不也关闭这个?@Jan回溯相关的问题从来都不明显。如果你发现一个具有相同模式的问题,我将关闭该问题。你在这里的解决方案不考虑逃逸的反斜杠。@WiktorStribiżew:搜索揭示(顺便说一句,由你回答),和。谢谢,Jan。感谢。
'love'
'John said \"HI\"'