【问题标题】:Notepad++ regex - Trim leading and trailing whitespace between xml tagsNotepad++ 正则表达式 - 修剪 xml 标记之间的前导和尾随空格
【发布时间】:2018-02-06 00:27:48
【问题描述】:

在这个问题上我一头雾水——我想匹配 xml 标签之间的前导和尾随空格

<tag>  fdsfdsf fdsf fds f     </tag>

and end with 

<tag>fdsfdsf fdsf fds f</tag>

它应该匹配任何开始和结束标记。谢谢你的帮助。我也会继续阅读。

编辑:这是我对否决问题的研究:(这不是 100% 有效,这就是我没有发布它的原因)搜索:(]+>)([^\s] +)([\s]+)(]+>) 替换:\1\3\4

【问题讨论】:

    标签: xml tags notepad++


    【解决方案1】:

    查找内容:(&lt;(\w+)&gt;)\s*(.*?)\s*(&lt;/\2&gt;)

    替换为:$1$3$4

    编辑:第一个版本不适用于任何标签,并使用前瞻/后视。这似乎是一个更好的解决方案。

    EDIT2:添加了\s* 以搜索所有空格,而不仅仅是空格。


    (<(\w+)>)
    

    捕获组 1 是开始标记。捕获组 2 是标签名称,我们稍后使用它来匹配结束标签。

    (.*?)
    

    捕获组 3 位于标签和空格之间。 ? 强制此组延迟匹配,因此外部 \s* 模式优先。

    (</\2>)
    

    捕获组 4 是结束标记,使用对组 2 的反向引用。

    【讨论】:

    • 如何让它也匹配任何标签?
    • 到目前为止我最接近替换尾随空格的是 (]+>)([^\s]+)([\s]+)([^ ]+>)
    • 并替换为 \1\2\4
    • 我在发布后不久编辑了我的答案。它目前将匹配每组匹配的标签。这不是你想要的吗?你刷新并看到我的编辑了吗?
    • 完美运行!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多