我正在创建一个正则表达式库来处理 HTML(完成后我会把它发布到 MSDN 代码上)。其中一种方法删除结束标记前的所有空格。
<p>See the dog run </p>
它将消除结束段落之前的空间。我正在使用这个:
public static string RemoveWhiteSpaceBeforeClosingTag(string text)
{
string pattern = @"(\s+)(?:</)";
return Regex.Replace(text, pattern, "</", Singleline | IgnoreCase);
}
如您所见,我正在用
请您参考如下方法:
\s+(?=</)
是您想要的表达方式。它表示一个或多个空白字符后跟
(?=...)是一个 positive lookahead .这不会包含在表达式中;(?:...)是 non-capturing group .这将包含在表达式中。
总而言之,正则表达式是一种不稳定且容易出错的 HTML 处理方式,因此应谨慎使用。
