C#中我有一段字符串: "name,title,,(a1,a1),'m1,m2',content",我想要的结果: ["name","title","","(a1,a1)","'m1,m2'","content"],直接使用Split(',')无法得到想要的结果,于是想使用Regex.Split通过正则进行分割,我应该如何定义分隔符?谢谢!
5条回答 默认 最新
xiaoyu35 2018-06-11 11:47关注static void Main(string[] args)
{
string str1 = "name,title,,(a1,a1),'m1,m2',content";
string pattern1 = @"(?<=(.*),(?=.*))";
string pattern2 = @"(?<=\'.*),(?=.*\')";
string replacement1 = @"%#$";
str1 = Regex.Replace(str1, pattern1, replacement1);
str1 = Regex.Replace(str1, pattern2, replacement1);
var strs1 = Regex.Split(str1, ",");
var strs2 = new string[str1.Length];
List temp = new List();
foreach (var str in strs1)
{
string tmp = null;
if(str.Contains(replacement1))
{
tmp = str.Replace(replacement1, ",");
}
else
{
tmp = str;
}
temp.Add(tmp);
}
Console.ReadKey();
}
先把()和''内的,号替换成特殊字符,然后split,最后在替换回来本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报