Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

regex - Notepad++ insert new line at every nth occurrence of a string/character

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If you mean to add a newline after nth occurrence of any string on a line, I'd use

(?:.*?,){2}

and replace with $& (or $& ) 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):

(?:[^

,]*,){2}

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...