如何编写正则表达式来替换span标记之间的空格

时间:2011-02-01 14:17:21

标签: regex c#-4.0

我希望将span标记之间的空格替换为 

<span style="font-size:11;color:black"> </span>

我写了这个正则表达式:

Regex.Replace(xml, @"<span[^>]*?>\s*</span>", (match) => match.Value.Replace(" ", "&nbsp;"), RegexOptions.IgnoreCase);

但它给了我这个输出:

<span&nbsp;style="font-size:11;color:black">&nbsp;</span>

它还会在{span}之后放置&nbsp;

2 个答案:

答案 0 :(得分:1)

您可以使用

@"(?<=<span[^>]*?>)\s*(?=</span>)"

作为你的正则表达式。

请注意,使用正则表达式解析HTML是不受欢迎的,并且在遇到(其中包括)HTML注释和JavaScript时会破坏性。

答案 1 :(得分:0)

使用Regex.Replace

Regex regex = new Regex(@"<span([^>]*)>\s*</span>");
String output = regex.Replace(input, "<span$1>&nbsp;</span>");