Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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_Pcre - Fatal编程技术网

Php 仅当不在引号之间时才匹配给定序列,并考虑转义引号

Php 仅当不在引号之间时才匹配给定序列,并考虑转义引号,php,regex,pcre,Php,Regex,Pcre,我使用下面的正则表达式来匹配给定的字符序列,如果它没有被引号包围——也就是说,如果它后面有偶数个引号(使用正向前瞻),直到字符串结束 如果单词部分在引号之间为而非,则说我想匹配该单词: \bsection\b(?=[^"]*(?:"[^"]*"[^"]*)*$) 我如何扩展它以考虑转义引号?也就是说,如果我在链接示例中的引号之间插入一个\“,结果将保持不变。使用pcre可以将引用的内容: (?s)".*?(?<!\\)"(*SKIP)(*F)|\bsection\b 请参阅。@vks

我使用下面的正则表达式来匹配给定的字符序列,如果它没有被引号包围——也就是说,如果它后面有偶数个引号(使用正向前瞻),直到字符串结束

如果单词
部分
在引号之间为而非,则说我想匹配该单词:

\bsection\b(?=[^"]*(?:"[^"]*"[^"]*)*$)

我如何扩展它以考虑转义引号?也就是说,如果我在链接示例中的引号之间插入一个
\“
,结果将保持不变。

使用pcre可以将引用的内容:

(?s)".*?(?<!\\)"(*SKIP)(*F)|\bsection\b

请参阅。

@vks,这是我正在处理的一个PHP项目。标记现在添加到问题中。@vks是的,不幸的是,可能会发生这种情况。我也想到了同样的情况,但可能会有多个“\”,然后我们不知道是否必须忽略所有或仅忽略奇数:p
$pattern = '/".*?(?<!\\\)"(*SKIP)(*F)|\bsection\b/s';