2011-02-01 50 views
0

替换span标签之间的空间我想通过 如何写正则表达式与 

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

被替换span标签之间的空间,我写这个表达式:

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

但它给我这个输出:

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

它也将&nbsp; afte r跨度。

回答

1

你可以使用

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

为您的正则表达式。

请注意,使用正则表达式解析HTML会受到折磨,并且在遇到(其中包括)HTML注释和JavaScript时会崩溃。

+0

TX它的工作,但面对其它问题,当我加载替换字符串以XElement.Load(outputstrg).Element( “身”);它会抛出一个错误 有没有办法让我的替换字符串,以便XML通知它有一个空间? – Jack 2011-02-01 15:02:33

0

使用Regex.Replace

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