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

如何修改正则表达式,提取引号内内容时不包含外层引号?

问题原因

你写的正则里已经用()定义了捕获组,匹配到的内容中,整个匹配结果(Value属性)会包含两端的引号,你需要的不带引号的内容实际存储在序号为1的捕获组里。

解决方法

方法1:不修改正则,调整取值逻辑

直接取捕获组1的内容即可,修改后代码如下:

Regex p = new Regex("\"([^\"]+)\""); 
string dirs = p.Match(link).Groups[1].Value;

方法2:调整正则,直接匹配不带引号的内容

使用零宽断言限定匹配位置前后是双引号,最终匹配结果本身就不包含引号,修改后代码如下:

Regex p = new Regex(@"(?<="")[^""]+(?="")"); 
string dirs = p.Match(link).Value;

该正则里(?<=")表示匹配位置的前方必须是双引号,(?=")表示匹配位置的后方必须是双引号,两个断言都不会计入最终的匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:51:04