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

C#如何匹配不在引号内的特定字符(斜杠/)

匹配未被双引号包裹的斜杠/的正则方案

需求说明

要匹配所有未被双引号(")包含的斜杠/,以下是示例及目标匹配位置(用/标记):

  • HKEY/"SOFTWARE"/"test/123"/
  • HKEY/"SOFTWARE"/test
  • HKEY/SOFTWARE/"test/123"/
  • HKEY/SOFTWARE/test//test
  • HKEY/SOFTWARE/"test
  • HKEY/SOFTWARE/"test/

之前尝试的正则/((?=[^""]*(?:""[^""]*""[^""]*)*$))效果不佳,且多数现成方案要么无效,要么是其他语言的实现。

可行正则表达式

使用以下正则可以精准匹配目标斜杠:

/(?=(?:[^"]*"[^"]*")*[^"]*$)

原理说明

  • (?=...) 正向预查,用于验证当前位置之后的内容是否符合引号规则
  • (?:[^"]*"[^"]*")* 匹配零或多组成对的双引号及其中间内容,确保前面的引号都是闭合状态
  • [^"]*$ 匹配到字符串结尾的所有非引号内容,确保当前斜杠不在未闭合的引号范围内

这个正则能覆盖示例里的所有场景,包括存在未闭合引号的情况——未闭合引号后的斜杠会被自动排除匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:14:54