在C#中用替换空格

时间:2019-02-06 13:21:47

标签: c# string

如果不确定空格的数量,如何将<br />之后的空格替换为&nbsp;

 string Text = "3 stunning private villas <br />   The Beach villa";
 if (Text.Contains("<br /> "))
 {
   Text = Text.Replace("<br /> ", "<br />&nbsp;");
 }

3 个答案:

答案 0 :(得分:2)

如果要替换<br />之后的 all (白色)空格(即各种空格,制表符等),可以尝试使用正则表达式

  string Text = "3 stunning private villas <br />   The Beach villa";

  string result = Regex.Replace(
      Text,
    @"(?<=\<br \/\>)\s+",
      match => string.Concat(Enumerable.Repeat("&nbsp;", match.Length)));

  Console.Write(result);

结果:

  3 stunning private villas <br />&nbsp;&nbsp;&nbsp;The Beach villa

答案 1 :(得分:1)

您可以使用正则表达式来做到这一点:

Regex.Replace(text, @"(?<=<br */>) +", m => m.Value.Replace(" ", "&nbsp;"))

+的意思是“一个或多个空格”。这与<br />

之后的空格匹配

(?<=<br */>)是肯定的断言。这样可以确保正则表达式仅与<br />之后立即出现的内容匹配。为了安全起见,我在<br/>之间添加了可变数量的空格。

每次在<br />之后立即发现一个或多个空格时,它将占用这些空格并将每个空格替换为&nbsp;,并将其替换回原始字符串中。

答案 2 :(得分:-1)

更新: 最好使用Regex将<br />之后的空格替换为&nbsp;,如下所示

Text = Regex.Replace(Text, "(?<=<br />)[\\s]|(?<=\\s)[\\s]", "&nbsp;");