是否存在无需修改即可在C#中使用的匹配双引号的正则语法?
解决C#中带双引号正则的书写痛点
嘿,这个问题我太懂了——在C#里写包含双引号的正则表达式,要么转义到眼花,要么拼接得像面条,确实闹心!不过有个完美的解决方案,能同时兼顾正则引擎的语法和C#的字符串规则,还能让你的正则保持原有的可读性:
核心技巧:逐字字符串 + 双引号转义
C#的逐字字符串字面量(用@前缀标记)本身就不需要转义反斜杠,而里面的双引号只需要用两个连续的双引号""来表示即可。这样写出来的正则几乎和你原本想要的正则结构完全一致!
比如你给出的示例正则:
\s*"Hello"\s*"world"\s*
在C#里可以直接写成:
var pattern = @"\s*""Hello""\s*""world""\s*";
为什么这方法更好?
- 可读性拉满:和原正则的结构几乎完全对应,二次开发时一眼就能看懂,不需要额外还原转义或拼接的逻辑
- 不易出错:不用写一堆
\\和\",只需要把原正则里的"替换成""就行,操作简单 - 简洁高效:比拼接字符串的写法短太多,也避免了拆分字符串带来的混乱
对比原来的写法
你之前用的两种方法的问题:
- 转义写法:
"\\s*\"Hello\"\\s*\"world\"\\s*",里面的\\和\"很容易漏写或多写,排查错误麻烦 - 拼接写法:
@"\s*" + '"' + "Hello" + '"' + @"\s*" + '"' + "world" + '"' + @"\s*",字符串拆得太碎,可读性差,修改起来还要调整拼接部分
而用逐字字符串加双引号转义的写法,完美解决了这两个问题——既简洁又直观,还和原生正则语法高度匹配。
内容的提问来源于stack exchange,提问作者BenevolentDeity
相关产品推荐
相关产品推荐

