You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配单引号内容时忽略被反斜杠转义的单引号

正则调整方案

你需要使用支持识别转义单引号的匹配模式,正确正则如下:

'((?:\\.|[^'\\])*)'

模式逻辑说明

  • 首尾的'匹配包裹目标内容的前后单引号
  • 中间的(?:\\.|[^'\\])*是重复匹配的非捕获组,每次匹配两类合法内容:
    • \\.:匹配反斜杠开头的转义序列,自然包含\'这种转义单引号的场景,不会把转义后的单引号识别为结束标记
    • [^'\\]:匹配既不是单引号也不是反斜杠的普通字符
  • 最内层的括号()为捕获组,提取结果直接取该组的内容即可

使用示例(Python)

import re

raw_str = r"'hello\'world'"
pattern = r"'((?:\\.|[^'\\])*)'"
result = re.search(pattern, raw_str)
if result:
    print(result.group(1))
# 输出结果:hello\'world

如果你的使用场景不需要捕获外层单引号,仅匹配中间内容,可以直接使用(?:\\.|[^'\\])*配合前后断言使用,通用场景下上述模式即可覆盖需求。

内容的提问来源于stack exchange,提问作者Jason p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:08