正则表达式 - 在找到的字符串后添加一个新行? (分裂一个很长的字符串)

时间:2014-10-23 20:12:27

标签: regex notepad++

我想要一个LONG单行文本字符串,并将其拆分为多行。

例如,拿这个:

<random-text-doesn't-matter-what-this-is><random-text-doesn't-matter-what-this-is><random-text-doesn't-matter-what-this-is><random-text-doesn't-matter-what-this-is>

并替换为:

<random-text-doesn't-matter-what-this-is>
<random-text-doesn't-matter-what-this-is>
<random-text-doesn't-matter-what-this-is>
<random-text-doesn't-matter-what-this-is>

我可以获得&lt;之间的第一个字符串。 +&gt;使用:

^[^>]*>

但是我会在第一个<random-text-doesn't-matter-what-this-is>之后添加一行 ^ [^&gt;] *&gt;

更好的是,是否有一个模式可以搜索&lt;之间的所有字符串。 +&gt;并添加一个新行?长字符串中的字符串数量将增加和减少,因此在&lt;字符串之间的所有字符串上添加行的模式+&gt;需要完全通用,并且能够运行直到文件结束。

1 个答案:

答案 0 :(得分:3)

您可以移除字符串^锚点的开头并搜索< .. >的所有实例... \K转义序列会重置匹配的起点和任何不再包含以前消费的字符

Find: <[^>]*>\K
Replace: \n

或者你可以保持简单,我想......

Find: (<[^>]*>)
Replace: \1\n

Live Demo