所以我有一个像这样的字符串:
string sampleString = "this - is a string - with hyphens - in it";
Run Code Online (Sandbox Code Playgroud)
这里要注意的是连字符的左侧和右侧有一个随机数量的空格.目标是用连字符替换我的字符串中的空格(因此字符串中的超量问题).所以我追求的结果应该是这样的:
"这 - 是 - 一个字符串,用连字符功能于它".
目前我正在使用:
sampleString.Trim().ToLower().Replace(" ", "-")
Run Code Online (Sandbox Code Playgroud)
但这导致以下输出:
"这是 - - 一个字符串------用连字符--------中,它"
寻找最干净,最简洁的解决方案.
谢谢!
因为每个人都会提出一个正则表达式解决方案,我会向您展示一个非正则表达式解决方案:
string s = "this - is a string - with hyphens - in it";
string[] groups = s.Split(
new[] { '-', ' ' },
StringSplitOptions.RemoveEmptyEntries
);
string t = String.Join("-", groups);
Run Code Online (Sandbox Code Playgroud)
尝试使用System.Text.RegularExpressions.Regex.
只需致电:
Regex.Replace(sampleString, @"\s+-?\s*", "-");
Run Code Online (Sandbox Code Playgroud)