【问题标题】:Regex to remove withespaces from .aspx file正则表达式从 .aspx 文件中删除空格
【发布时间】:2011-01-19 06:28:33
【问题描述】:

我正在寻找一个可以从 .aspx 文件中的 html 代码中删除所有空格的正则表达式。以下是 Regex 应满足的一些条件:

  1. 不应删除包含在 "" 或 '' 之间的字符串之间的空格。
  2. 不应删除 html 属性/标签之间的空格,例如 <a href>text1 text2</a>。在 doctype 规范的情况下,HTML 也可以以 <! 开头。简而言之,只有出现在 html 标记之后的空格需要被移除。
  3. 不应删除包含在 之间的服务器标记之间的空格。

如果您能够提供一个满足上述所有条件的正则表达式,那就太好了。否则,单独的正则表达式也可以。

提前致谢。

【问题讨论】:

  • 大部分页面都用标签包裹,除了可能在主标签 (<html>) 之前/之后,或带有母版页的页面上的 <asp:content> 标签。无论如何,你想做什么? VS 可以重新格式化页面,如果那是你所追求的,但我怀疑你能找到正则表达式来做你所追求的。
  • 您会发现为此使用正则表达式非常困难。见stackoverflow.com/questions/1732348/…。此外,请查看“相关”问题(本页下方和右侧)。
  • 真的有什么理由要删除标记中的空格吗?这将使阅读您的标记成为一场真正的噩梦。

标签: regex


【解决方案1】:

一个天真的但简单的正则表达式技巧是匹配><之间的空格。

这将使标签及其文本内容保持不变。

在javascript中(js不支持lookbehinds):

  • 模式:>\s+(?=<)
  • 替换为:>

在支持lookbehinds(f.e. PCRE)的正则表达式引擎中:

  • 模式:(?<=>)\s+(?=<)
  • 什么都没有替换

一个测试here

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 2020-10-27
    • 2011-11-01
    • 2012-11-15
    • 2018-11-20
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多