正则表达式替换为重复,如何替换 X 次出现的“.+?\r\n”中的每个“\r\n”?
Regex Replacement with Repetition, How do I replace each "\r\n" in X number of occurrences of ".+?\r\n"?
我有一个很长的列表,每一项都用换行符分隔。如果可能,我想将所有内容分组到最多 1000 个组中,如果不是,则更少,用逗号分隔。
所以当使用类似... (.+?(\r\n)){1000}
我如何用逗号替换每次重复的 \r\n
匹配?
此外,如果可能的话,我如何让它匹配最多 1000 个,如果不是,则尽可能多(对于列表的组)?我以为它会是 {,1000} 但那是错误的。
我想不出一种方法可以通过一次替换来完成此操作,但可以通过两次替换操作实现。
先把\R+
换成,
然后将^((?:[^,]*,){1000})
替换为\r\n
如果您担心包含逗号的原始行会被误解,您可以使用占位符字符串,例如
先把\R+
换成!!--PLACEHOLDER--!!
然后将^((?:(?:(?!!!--PLACEHOLDER--!!).)*!!--PLACEHOLDER--!!){1000})
替换为\r\n
将所有占位符 !!--PLACEHOLDER--!!
替换为您喜欢的分隔符 ,
我有一个很长的列表,每一项都用换行符分隔。如果可能,我想将所有内容分组到最多 1000 个组中,如果不是,则更少,用逗号分隔。
所以当使用类似... (.+?(\r\n)){1000}
我如何用逗号替换每次重复的 \r\n
匹配?
此外,如果可能的话,我如何让它匹配最多 1000 个,如果不是,则尽可能多(对于列表的组)?我以为它会是 {,1000} 但那是错误的。
我想不出一种方法可以通过一次替换来完成此操作,但可以通过两次替换操作实现。
先把\R+
换成,
然后将^((?:[^,]*,){1000})
替换为\r\n
如果您担心包含逗号的原始行会被误解,您可以使用占位符字符串,例如
先把\R+
换成!!--PLACEHOLDER--!!
然后将^((?:(?:(?!!!--PLACEHOLDER--!!).)*!!--PLACEHOLDER--!!){1000})
替换为\r\n
将所有占位符 !!--PLACEHOLDER--!!
替换为您喜欢的分隔符 ,