如何在C#中获取反斜杠(\)的IndexOf并提取目标子串
问题解决:提取字符串中的目标子串
为什么找不到反斜杠?
你代码里的\"是编程语言的转义语法,实际存储在字符串中的只有双引号("),并没有反斜杠(\)。所以用IndexOf('\\')会返回-1——因为字符串里根本不存在这个字符。
提取目标子串的几种方法
方法1:通过定位双引号位置截取
直接找到前后两个双引号的位置,然后截取中间内容:
var str = " \"AAP, FB, VOD, ART, BAG, CAT, DDL\"\n "; int startIdx = str.IndexOf('"'); int endIdx = str.IndexOf('"', startIdx + 1); var targetSubstring = str.Substring(startIdx + 1, endIdx - startIdx - 1); // targetSubstring 即为 "AAP, FB, VOD, ART, BAG, CAT, DDL"
方法2:使用正则表达式匹配
利用正则匹配双引号包裹的内容:
using System.Text.RegularExpressions; var str = " \"AAP, FB, VOD, ART, BAG, CAT, DDL\"\n "; var matchResult = Regex.Match(str, @"\""(.*?)\"""); if (matchResult.Success) { var targetSubstring = matchResult.Groups[1].Value; }
方法3:通过分割字符串获取
以双引号为分隔符分割字符串,取中间的部分:
var str = " \"AAP, FB, VOD, ART, BAG, CAT, DDL\"\n "; var splitParts = str.Split('"'); if (splitParts.Length >= 2) { var targetSubstring = splitParts[1]; }
内容的提问来源于stack exchange,提问作者user19317490
相关产品推荐
相关产品推荐

