【发布时间】:2025-12-26 05:05:12
【问题描述】:
例如,给定:
hello"there\"boo\\\\"elephant
一般来说,我想匹配第一个和第三个引号,而不是中间的,因为中间的被转义了。这适用于(?<!\\)(?:\\{2})*" (Regex match unescaped quotes);但是,该正则表达式在捕获的组中包含后视(例如 2 个斜杠)。有没有办法使后视不捕获。
如果相关,我将使用 javascript,因此我链接的其他 * 帖子使用的 \K 似乎不起作用。
编辑,澄清一下,我不想替换双引号,我只是想匹配它们。我的用例具体是查找索引,但我可以使用现有查询来做到这一点,使用类似match.index + match[0].length - 1 的东西,但我觉得那很难看,我想更好地理解正则表达式,所以我希望有一个更简单的正则表达式找到未转义的引用而不捕获它之前的任何内容。
【问题讨论】:
-
还是一样的做法,使用
/((?:^|[^\\])(?:\\{2})*)"/。你很少不能没有\K,因为你可以使用捕获组来解决它。
标签: javascript regex