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

JavaScript如何用正则提取括号内内容并剔除外层双引号

解决方案

你可以直接用带可选引号匹配的捕获组正则来实现,无需额外后续处理去除引号的逻辑:

(?<=\()"?(.*?)"?(?=\))

如果你的正则引擎支持命名捕获,也可以使用更易维护的版本:

(?<=\()"?(?<target>.*?)"?(?=\))

匹配逻辑说明

  • (?<=\():正向零宽断言,匹配左括号(之后的位置,不会消耗左括号字符
  • "?:匹配0个或1个双引号,括号内容开头存在引号就直接匹配剔除,不存在就跳过
  • (.*?)/(?<target>.*?):非贪婪匹配所有内容,这部分就是你需要的纯净结果,自动排除了前后的外层双引号
  • "?::匹配0个或1个结尾的双引号,存在就匹配剔除,不存在就跳过
  • (?=\)):正向零宽断言,匹配右括号)之前的位置,不会消耗右括号字符

验证效果

针对你给出的两种输入样例:

  • 输入Key ("vinCode")=(V1234567890123456) some text.,提取结果为vinCode、V1234567890123456
  • 输入Key (vinCode)=(V1234567890123456) some text.,提取结果同样为vinCode、V1234567890123456

完全符合预期提取要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:21:00