我试图简化在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).*发布于 2016-10-08 20:34:45
这可能就是你要找的东西:
查找: (^\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>发布于 2016-10-08 20:34:00
不可能匹配行的末尾,但可以匹配整行,并将其与缺失的结束标记放在一起:
Find: ^ *<verse>(.(?!</verse>))*(</\w*>)?$
Repl: $0</verse>$1https://stackoverflow.com/questions/39936935
复制相似问题