C#如何去除字符串中的引号与转义引号提取目标值
C#提取嵌套转义引号内纯文本的最简方案
方案1:快速Trim法(适合纯数字/无特殊符号的内容)
仅一行代码即可完成,性能远高于正则,完全适配你给出的场景:
// 你的原始输入字符串 string rawInput = "\"\\\"123456\\\"\""; // 直接去除首尾所有双引号、反斜杠即可得到目标内容 string result = rawInput.Trim('"', '\\'); // 输出结果:123456
方案2:索引截取法(适合内容可能包含引号/反斜杠的通用场景)
如果需要提取的内容本身存在合法的双引号、反斜杠,用索引定位的方式可以保证准确性:
string rawInput = "\"\\\"123456\\\"\""; // 定位第二个双引号的下一位作为内容起始点 int startIndex = rawInput.IndexOf('"', 1) + 1; // 定位倒数第二个双引号作为内容结束点 int endIndex = rawInput.LastIndexOf('"', rawInput.Length - 2); // 截取中间内容 string result = rawInput.Substring(startIndex, endIndex - startIndex);
关于Regex.Unescape无效的说明
Regex.Unescape是专门用于处理正则表达式语法内的转义字符(比如正则里的\d、\s这类转义标记),你遇到的是字符串字面量的转义,不属于正则转义范畴,因此无法用该方法处理。
内容的提问来源于stack exchange,提问作者Rbell1997
相关产品推荐
相关产品推荐

