繁体   English   中英

用C#中的Regex替换两个或多个空格

[英]Replace two or more spaces with Regex in C#

我对Regex的东西太可怕了。 我想在C#中使用正则表达式将任意两个或更多空格转换为不间断空格。 我想单独留下单个空格。

Sample     Sample

会生产

Sample     Sample

Sample Sample

不会受到影响。

有任何想法吗?

提前致谢。

您可以使用MatchEvaluator作为替换参数。 在C#3.0或更新版本中,您可以使用lambda函数:

s = Regex.Replace(s, " {2,}", x => x.Value.Replace(" ", " "));

它基于零宽度正向前瞻和后观断言。

MSDN

var rx = new Regex(" (?= )|(?<= ) ");

var str = "ab   cde f";
var res = rx.Replace(str, "&nbsp;");

// res == ab&nbsp;&nbsp;&nbsp;cde f

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM