Roh*_*han 3 c# regex string replace character
我的目标是获得字符串的格式:由分离的"0,1,2,3,4,7,10"的数字一个逗号,在开始或结束没有逗号.
如果我有字符串"0,1,2,4"我只想删除出现的两个逗号中的一个,这样我将留下"0,1,2,4"
我试过了 .Replace(",,", ",")
但问题是,我不知道可能有多少逗号.所以例如,我可能会遇到像"0 ,,,,,,, 1,2,3 ,,,, 5"这样的情况,我需要把它变成"0,1,2,3,5"
如何使用C#(.net webforms)实现此目的?也许与正则表达式有关?但我对这些并不太熟悉.这是唯一的方法吗?
Eri*_* J. 10
您可以在逗号上拆分字符串,删除空元素,然后将元素重新连接在一起.
string str = "0,,,,,,,1,,2,3,,,,5";
var singleComma = string.Join(",",
str.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
Run Code Online (Sandbox Code Playgroud)
虽然这不使用RegEx,但它可能会稍快一些,因为它使用专门为此目的而设计的操作,而不是一般的模式匹配.然后,除非你有一个非常大的字符串或许多字符串,否则任何性能提升都无关紧要.
这很简单
string test = "0,,,,,,,1,,2,3,,,,5";
string result = Regex.Replace(test, ",+", ", ");
Run Code Online (Sandbox Code Playgroud)
模式表达式中逗号后面的加号表示
匹配前一个元素一次或多次.
而不是删除不需要的字符,而是使用原始字符串中的数字形成一个新的干净字符串.您可以使用正则表达式
string input = "0,,, .+=/ garbage,,,,1,,2,3,,,,5";
string output = String.Join(", ", Regex.Matches(input, @"\d+")
.Cast<Match>()
.Select(m => m.Value));
Run Code Online (Sandbox Code Playgroud)