空白的正则表达式模式

时间:2009-05-22 15:36:23

标签: c# .net regex

我正在创建一个使用HTML的正则表达式库(我会在完成后将它发布在MSDN代码上)。其中一个方法在结束标记之前删除任何空格。

<p>See the dog run </p>

它将消除结束段落之前的空格。我正在使用这个:

    public static string RemoveWhiteSpaceBeforeClosingTag(string text)
    {
        string pattern = @"(\s+)(?:</)";
        return Regex.Replace(text, pattern, "</", Singleline | IgnoreCase);
    }

正如你所看到我用&lt; /替换空格,因为我似乎无法匹配空格并排除结束标记。我知道有办法 - 我只是没想出来。

2 个答案:

答案 0 :(得分:11)

\s+(?=</)

是你所追求的表达方式。它表示一个或多个空白字符后跟

尽管如此,正则表达式是一种处理HTML的片状且容易出错的方式,因此如果有的话应该谨慎使用。

答案 1 :(得分:3)

你想要一个前瞻(?=)模式:

\s+(?=</)

可以用“”替换