Notepad++ insert new line at every nth occurrence of a string/character
If you mean to add a newline after nth occurrence of any string on a line, I'd use
(?:.*?,){2}
and replace with $&\n (or $&\r\n) where .*? matches any 0+ chars other than line break characters, as few as possible, up to the first occurrence of ,. The $& is the backreference to the whole match value (2 is used for the demo to look cleaner, 1000 is a rather big value). See a demo showing that a newline is placed after each second ,.
With a single char, you'd better use a negated character class (but add line break chars there to force the pattern to not overflow across lines):
(?:[^\n\r,]*,){2}
Related videos on Youtube
Comments
-
Pugazh 3 monthsUsing Notepad++ Find and Replace feature, I would like to insert a new line at every nth occurrence of a character or string (a comma in my case).
I have tried the regex below using "Regular expression" mode, but no luck.
Find what:
((,){1000})Replace with:
\1\n-
Wiktor Stribiżew almost 6 yearsIf a line is meant, you may use(?:[^\n\r,]*,){2}(or your approach will also work -(?:.*?,){2}) ->$&\nto insert a\nafter every second,.
-
-
Daniel van Flymen over 5 yearsHow would you do this in vim? -
Wiktor Stribiżew over 5 years@DanielvanFlymen: In Vim, you need to replace with\rto insert a newline. And since Vim character classes do not match line breaks, there is no need to use\n\rin the[...]. And the backreference to the whole match is&. So, try:%s/\([^,]*,\)\{2}/&\r/g.
