【发布时间】:2011-07-02 08:10:36
【问题描述】:
我对正则表达式的东西很害怕。我想在 C# 中使用正则表达式将任意两个或多个空格转换为不间断空格。我想单独留下一个空格。
Sample Sample
会产生
Sample Sample
但是
Sample Sample
不会受到影响。
有什么想法吗?
提前致谢。
【问题讨论】:
我对正则表达式的东西很害怕。我想在 C# 中使用正则表达式将任意两个或多个空格转换为不间断空格。我想单独留下一个空格。
Sample Sample
会产生
Sample Sample
但是
Sample Sample
不会受到影响。
有什么想法吗?
提前致谢。
【问题讨论】:
您可以使用MatchEvaluator 作为替换参数。在 C# 3.0 或更高版本中,您可以使用 lambda 函数:
s = Regex.Replace(s, " {2,}", x => x.Value.Replace(" ", " "));
【讨论】:
它基于零宽度正向前瞻和后向断言。
var rx = new Regex(" (?= )|(?<= ) ");
var str = "ab cde f";
var res = rx.Replace(str, " ");
// res == ab cde f
【讨论】: