C# 正则表达式删除字符串中的双/三逗号
我需要解析一个字符串,因此结果应该是这样输出的:C# 正则表达式删除字符串中的双/三逗号,c#,regex,C#,Regex,我需要解析一个字符串,因此结果应该是这样输出的: "abc,def,ghi,klm,nop" ",,,abc,,def,ghi,,,,,,,,,klm,,,nop" 但我收到的字符串可能更像: "abc,def,ghi,klm,nop" ",,,abc,,def,ghi,,,,,,,,,klm,,,nop" 关键是,我事先不知道单词之间有多少逗号。 有没有可以在C中使用的正则表达式可以帮助我解决这个问题?搜索,+,并用,替换所有的正则表达式 所以在C#中,这可能看起来像 resultSt
"abc,def,ghi,klm,nop"
",,,abc,,def,ghi,,,,,,,,,klm,,,nop"
但我收到的字符串可能更像:
"abc,def,ghi,klm,nop"
",,,abc,,def,ghi,,,,,,,,,klm,,,nop"
关键是,我事先不知道单词之间有多少逗号。有没有可以在C中使用的正则表达式可以帮助我解决这个问题?搜索
,+
,并用,
替换所有的正则表达式
所以在C#中,这可能看起来像
resultString = Regex.Replace(subjectString, ",,+", ",");
,+
表示“匹配两个或多个逗号的所有匹配项”,因此不会触及单个逗号。这也可以写成,{2,}
您可以使用,{2,}
表达式匹配任何出现的2个或更多逗号,然后用单个逗号替换它们
您可能还需要一个Trim
调用,以删除Regex.Replace
调用中剩余的任何前导或尾随逗号。(有可能仅仅通过一个正则表达式替换就可以做到这一点,但并没有立即想到什么。)
没有正则表达式的简单解决方案:
string items = inputString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string result = String.Join(",", items);
实际上,你可以不用任何修剪调用就可以做到
text = Regex.Replace(text, "^,+|,+$|(?<=,),+", "");
text=Regex.Replace(text,“^,+|,+$|”(?以下是我的工作:
//Below is the test string
string test = "YK 002 10 23 30 5 TDP_XYZ "
private static string return_with_comma(string line)
{
line = line.TrimEnd();
line = line.Replace(" ", ",");
line = Regex.Replace(line, ",,+", ",");
string[] array;
array = line.Split(',');
for (int x = 0; x < array.Length; x++)
{
line += array[x].Trim();
}
line += "\r\n";
return line;
}
string result = return_with_comma(test);
//Output is
//YK,002,10,23,30,5,TDP_XYZ
//下面是测试字符串
字符串测试=“YK 002 10 23 30 5 TDP_XYZ”
私有静态字符串返回带逗号的字符串(字符串行)
{
line=line.TrimEnd();
行=行。替换(“,”,”);
行=Regex.Replace(行,“,+”,“,”);
字符串[]数组;
数组=line.Split(',');
for(int x=0;x
很高兴知道这个解决方案!谢谢!