我对Regex的东西太可怕了。我想在C#中使用正则表达式将任意两个或更多空格转换为不间断空格。我想单独留下单个空格。
Sample Sample
会产生
Sample Sample
但是
Sample Sample
不会受到影响。
有什么想法吗?
提前致谢。
答案 0 :(得分:7)
您可以使用MatchEvaluator
作为替换参数。在C#3.0或更新版本中,您可以使用lambda函数:
s = Regex.Replace(s, " {2,}", x => x.Value.Replace(" ", " "));
答案 1 :(得分:3)
它基于零宽度正向前瞻和后观断言。
var rx = new Regex(" (?= )|(?<= ) ");
var str = "ab cde f";
var res = rx.Replace(str, " ");
// res == ab cde f