Regex在记事本++;
我试图简化纠正xml文件中缺少的不匹配的Regex在记事本++;,regex,xml,notepad++,Regex,Xml,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
标记的过程,该文件如下所示:
<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>
words asdlkjf alsdf。
武断的话。
更随意的文本。
其他武断的话。
我想使用notepad++中的正则表达式来查找以任意数量的空格开头的行尾,并且不可能与行尾匹配,但您可以匹配整行并将其与缺少的结束标记放回:
Find: ^ *<verse>(.(?!</verse>))*(</\w*>)?$
Repl: $0</verse>$1
Find:^*(.(!)*()$
答复:0美元1
不可能匹配行尾,但您可以匹配整行并将其与缺少的结束标记放回:
Find: ^ *<verse>(.(?!</verse>))*(</\w*>)?$
Repl: $0</verse>$1
Find:^*(.(!)*()$
答复:0美元1
这可能就是您想要的:
查找:(^\h+\h*)*?(\h*)*)$
替换:
$1$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>
words asdlkjf alsdf。
武断的话。
更随意的文本。
其他武断的话。
这可能就是您想要的:
查找:(^\h+\h*)*?(\h*)*)$
替换:
$1$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>
words asdlkjf alsdf。
武断的话。
更随意的文本。
其他武断的话。
问题标题应具有,并替换为
是否要添加缺少的结尾韵文标记?是否需要保留最后一行中的
?@Bohemian是的,我想添加缺少的结尾标记@trincot是的,保留现有的
标记很重要。问题标题应该有,并替换为
是否要添加缺少的结尾韵文标记?是否需要保留最后一行中的
?@Bohemian是的,我想添加缺少的结尾标记@trincot是的,保留现有的
标签很重要。参考匹配组的奇妙解决方案;不幸的是,没有@Bohemian的解决方案那么容易理解;不过,我接受了它,因为它更灵活,不合适的结束标记可能不是
,不客气。实际上,语法有点混乱,因为我转义了
字符,这实际上是不需要的(我现在更新了它)。\h
表示空格,但也表示制表符和非中断空格(任何不是新行但保持“水平”的空白)。参考匹配组的绝妙解决方案;不幸的是,没有@Bohemian的解决方案那么容易理解;不过,我接受了它,因为它更灵活,不合适的结束标记可能不是
,不客气。实际上,语法有点混乱,因为我转义了
字符,这实际上是不需要的(我现在更新了它)。\h
表示空格,但也表示制表符和非分隔空格(任何不是新行但保持“水平”的空白)。@gdw FYI更改了不合适的结束标记以匹配任何非韵文标记。@gdw FYI更改了不合适的结束标记以匹配任何非韵文标记。