【问题标题】:Regex for removing leading and trailing whitepsaces from XML file用于从 XML 文件中删除前导和尾随空白的正则表达式
【发布时间】:2017-04-18 06:03:13
【问题描述】:

我一直在尝试使用以下正则表达式从 XML 文件中删除所有空白字符(包括 \r、\n、\t):

    >([\r\n\t ])*([^ ]*[^<>]*[^ ]*)([\r\n\t ])*<

但是这个正则表达式将文件中的所有 XML 标记作为一个匹配项来捕获。如何改进此正则表达式以满足要求?

输入字符串:

    <Address>
    <City>   New York   </City>
    <Zip> 1001 </Zip>
    </Address>

预期结果(当替换为 \2 时):

    <Address>
    <City>New York</City>
    <Zip>1001</Zip>
    </Address>

【问题讨论】:

标签: regex xml


【解决方案1】:

匹配&gt; 和单词字符之间的空格的正则表达式。
或者单词字符和&lt;/之间的空格

(?<=[>])\s+(?=\w)|(?<=\w)\s+(?=[<]\/)

测试here

通过使用lookbehinds 和lookahead,只捕获空格。

为什么您原来的正则表达式有问题?尝试this 示例,并查看当您从[\w ]+? 中删除? 时会发生什么情况的说明。 (贪婪与懒惰)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多