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

如何构建正则表达式仅移除不含^或-的匹配项的引号

正则表达式实现:移除不含^或-的字符串周围的引号

需求说明

仅移除被"(HTML转义双引号)包裹且内容**不含^或-**的字符串两侧的引号,保留包含这两个字符的字符串的引号。

示例

  • 原始字符串:
string = '"Q%LCJ8^1"+"Q%VOD.L"+"Q%LSEG.L[EQ_LIST]MID_PRICE"+"BRT-"'
  • 预期结果:
"Q%LCJ8^1"+Q%VOD.L+Q%LSEG.L[EQ_LIST]MID_PRICE+"BRT-"'

正则方案

匹配规则

通过负向预查确保被包裹内容不含^或-,正则表达式如下:

"((?!.*[\^-])[^"]+)"

正则解析

  • ":匹配开头的HTML转义双引号
  • (?!.*[\^-]):负向预查,断言后续内容中不会出现^或-
  • [^"]+:匹配任意非"的字符(即被引号包裹的核心内容)
  • ":匹配结尾的HTML转义双引号

替换逻辑

将匹配到的完整部分替换为捕获组内的内容(即去掉前后的"),不同语言的反向引用写法略有差异:

  • Python/Java:用\1引用捕获组
  • JavaScript/PHP:用$1引用捕获组

代码示例(Python)

import re

original_str = '"Q%LCJ8^1"+"Q%VOD.L"+"Q%LSEG.L[EQ_LIST]MID_PRICE"+"BRT-"'
processed_str = re.sub(r'"((?!.*[\^-])[^"]+)"', r'\1', original_str)
print(processed_str)

运行后输出结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:05:30