【问题标题】:Regex Pattern for Whitespace空格的正则表达式模式
【发布时间】:2009-05-22 15:36:23
【问题描述】:

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

<p>See the dog run </p>

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

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

如您所见,我用 替换空格,因为我似乎无法仅匹配空格并排除结束标记。我知道有办法 - 我只是还没想出来。

【问题讨论】:

  • 仅供参考,Singleline 和 IgnoreCase 修饰符都无关紧要,因为正则表达式中没有点或字母。
  • 啊。这就说得通了。谢谢。

标签: c# .net regex


【解决方案1】:
\s+(?=</)

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

总而言之,正则表达式是一种处理 HTML 的不稳定且容易出错的方式,因此应谨慎使用。

【讨论】:

  • 就是这样 - 谢谢。我希望有另一种方法来处理我得到的 HTML。您应该已经看到了替换 8-\ 的 IndexOf 和 LastIndexOf 代码
【解决方案2】:

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

\s+(?=</)

可以用“”代替

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多