使用重复替换正则表达式,如何在“。+?\ r \ n”的X次出现中替换每个“\ r \ n”?

时间:2015-01-21 16:39:01

标签: regex notepad++

我有一个很长的列表,每个项目用换行符分隔。如果可能的话,我希望将所有内容分组为最多1000个,如果不可以,则将其分组,用逗号分隔。

因此,当使用类似... (.+?(\r\n)){1000}的内容时,如何用逗号替换每次重复的\r\n匹配?

另外,如果可能的话,我如何尽可能多地匹配1000个(对于列表组)?我认为这将是{,1000},但错误。

1 个答案:

答案 0 :(得分:2)

我无法通过一次替换来想办法,但可以通过两次替换操作来实现。

首先将\R+替换为,

然后将^((?:[^,]*,){1000})替换为\1\r\n

如果您担心包含逗号的原始行会被误解,您可以使用占位符字符串,例如。

首先将\R+替换为!!--PLACEHOLDER--!!

然后将^((?:(?:(?!!!--PLACEHOLDER--!!).)*!!--PLACEHOLDER--!!){1000})替换为\1\r\n

将所有占位符!!--PLACEHOLDER--!!替换为您想要,

的分隔符