Notepad++ insert new line at every nth occurrence

2020-02-09 12:16发布

问题:

Using 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

回答1:

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}