[英]Regex to find and fix unmatched xml closing tags in notepad++
我正在尝试简化纠正如下所示的xml文件中缺少的不匹配verse
标签的过程:
<verse number="21">words words words asdlkjf alsdf. </verse>
<verse number="22">words words words arbitrary words.
<verse number="23">more arbitrary text.</verse>
<verse number="23">other arbitrary words. </chapter>
我想在notepad ++中使用正则表达式来查找以任意数量的空格和<verse
但不以</verse>
结尾的行的结尾
在行尾匹配的情况下,我应该能够使用notepad ++查找/替换来添加丢失的标签。
这是我到目前为止的内容,它匹配以空格和<verse
开始的每行(不幸的是,整行)
^( +<verse).*
不可能匹配行尾,但是您可以匹配整行并将其与缺少的end标签放回去:
Find: ^ *<verse>(.(?!</verse>))*(</\w*>)?$
Repl: $0</verse>$1
这可能是您要寻找的:
查找: (^\\h+<verse(?!.*verse>\\h*).*?)((</.*?>\\h*)*)$
替换: $1</verse>$2
给定样本数据,它将进行两次替换,结果是:
<verse number="21">words words words asdlkjf alsdf. </verse>
<verse number="22">words words words arbitrary words. </verse>
<verse number="23">more arbitrary text.</verse>
<verse number="23">other arbitrary words. </verse></chapter>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.