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

.NET正则表达式匹配求助:匹配含斜杠的引号括号包裹内容

.NET正则匹配修正方案

你的需求是匹配格式为("包含至少一个/的任意字符内容")的字符串,原正则存在误匹配问题,核心原因是未约束双引号内的内容边界,贪婪匹配逻辑可能导致跨范围匹配。以下是修正后的实现方案:

修正后的正则与代码

public const string myRegEx = @"\(""[^""\\]*(?:\\.[^""\\]*)*\/[^""\\]*(?:\\.[^""\\]*)*""\)";
Regex forwardSlashesRegEx = new Regex(myRegEx);
if (forwardSlashesRegEx.IsMatch(mystring))
{
    // 存在符合规则的匹配项,执行对应逻辑
}

正则规则拆解

  • \(:精准匹配开头的左括号
  • "":匹配双引号(C#中使用@前缀时,双引号需用两个""转义)
  • [^""\\]*:匹配任意数量的非双引号、非转义符字符,避免提前触发闭合逻辑
  • (?:\\.[^""\\]*)*:处理转义字符(比如\"),确保转义的双引号不会被误判为闭合符,同时继续匹配后续内容
  • \/:匹配至少一个正斜杠,满足内容必须包含/的核心要求
  • 后续的[^""\\]*(?:\\.[^""\\]*)*:匹配正斜杠之后的内容,直到遇到未转义的闭合双引号
  • ""\):精准匹配结尾的双引号和右括号

特殊场景适配

如果允许双引号内的内容包含换行符,只需在创建Regex实例时添加RegexOptions.Singleline选项:

Regex forwardSlashesRegEx = new Regex(myRegEx, RegexOptions.Singleline);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:05:08