Insert a string after each number of words with conditions
- 
 Yes, in playing around with your original regex, I didn’t worry about the resulting space at the end of the line, as I have my “save” shortcut mapped to “trim trailing spaces” + “save”. The ONLY way files should be saved (for me!). 
- 
 And it is great that you have Admin rights here and can edit old posts, but I’m neutral on this. I think that old posts should not be edited and clarifying posts should just be added on. It is difficult to follow sometimes when history is CHANGED rather than simply CORRECTED/CLARIFIED later. :-D 
- 
 Hi, Alan, Yes, you’re right about it : I should have created a new post with the corrections, for a better history ! It’s just that my updated post was, still, quite long and I thought it would be more clear to, simply, change my initial post. But, I do understand your point of view ! Cheers, guy038 
- 
 @Scott-Sumner 
 Thanks for the info!
- 
 Hello, @hu-ma and All To complete the @scott-sumner post, about the two syntaxes of the searched groups, in replacement : - 
\N, with 0 < N < 10
- 
$N, with 0 <= N < 2,147,483,648
 There is the other practical syntax, below : - ${N}, with 0 <= N < 2,147,483,648
 
 Indeed, let’s imagine the original text: abcd 1234 WXYZand the first S/R : SEARCH ^.(..).REPLACE $100|You obtain the simple text : | | |Why ?! Just because, in replacement, the regex engine is looking for the group $100, which, obviously, does not exist ! So, the regex engine rewrites a zero-length string, for the non-existent group 100, followed by the literal character|!Now, compare, with the second S/R, below : SEARCH ^.(..).REPLACE ${1}00|This time, you, correctly, get the text, below : bc00| 2300| XY00|=> All the changed lines begin by the second and third characters of the original lines of text ( $1), and are, simply, followed by the string00|Best Regards, guy038 
- 
- 
 - Sorry for pumping up old thread, but my issue is related to this one.
 Cutting to the thread… 
 Look at Result#2 with desired arrangement-Example# 2 Greetings My Liege! As your personal advisor [NEWLINE] , I am qualified to assist you in all[NEWLINE] matters related to ruling our civilization.[NEWLINE] I am at your service. -------- +Seeked arrangement I am at your service. [NEWLINE] matters related to ruling our civilization.[NEWLINE], I am qualified to assist you in all[NEWLINE]Greetings My Liege! As your personal advisorI asked before for a way to rearrange the groups between [NEWLINE] to be backward… Now I’m asking for the same but in more automated way… Because not all lines have the same amount of Groups, I want to arrange all the lines that contains Groups between [NEWLINE] to be backward arrangement. -Example#3 Contains SIX groups One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six ------- +Seeked arrangement six[NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE]OneWhile using the same regex or python script -Example#4 Contains 4 groups I want [NEWLINE] this [NEWLINE] to be [NEWLINE] last ------ +Seeked arrangement last[NEWLINE] to be [NEWLINE] this [NEWLINE]I want
- 
 Hi, @abuali-huma, I found a general method, which uses three consecutive S/R. We’ll need two dummy characters, NOT used in the current file. I, personally, chose the #and@characters, but any other may be used !- 
The first S/R : - 
Changes any string [NEWLINE], possibly preceded and/or followed with a space character, by the dummy character #
- 
Adds, also, a #character at the end of any non-blank line
 
- 
- 
The second S/R is the main S/R, which rewrites the different parts, between the #character, in reverse order.- 
Note that this S/R will have to be performed as many times, till the message Replace All: 0 occurrences were replaced occurs, in the Replace dialog 
- 
The general idea, about this S/R, is to switch the beginning and ending parts of the found text, adding a @character, at the end of the exchanged parts, in order that the next run of this S/R, will avoid these moved parts of text ! Hence, the decreasing number of occurrences found, till zero :-))
 
- 
- 
The Third S/R : - 
Changes the #character, possibly preceded by a@character, inside text, by the string [NEXLINE], preceded and followed with a space character
- 
Deletes the #character, possibly preceded by a@character, when located at the end of the lines
 
- 
 All these S/R will use the Regular expression search mode, the Wrap around option and the Replace All button, of the Replace dialog So, let’s start with the original text, below : One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven [NEWLINE] eight [NEWLINE] nine [NEWLINE] ten [NEWLINE] eleven [NEWLINE] twelve One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven [NEWLINE] eight [NEWLINE] nine [NEWLINE] ten [NEWLINE] eleven One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven [NEWLINE] eight [NEWLINE] nine [NEWLINE] ten Other text NOT concerned by this Search Replacement One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven [NEWLINE] eight [NEWLINE] nine One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven [NEWLINE] eight One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six [NEWLINE] seven Bla bla blah Bla bla blah Bla bla blah One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five [NEWLINE] six One [NEWLINE] two [NEWLINE] three [NEWLINE] four [NEWLINE] five One [NEWLINE] two [NEWLINE] three [NEWLINE] four Dummy text inserted, in between ! One [NEWLINE] two [NEWLINE] three One [NEWLINE] two One I want [NEWLINE] this [NEWLINE] to be [NEWLINE] last
 After running the following S/R , once : SEARCH (?-s)\x20?\[NEWLINE\]\x20?|(?<=.)$REPLACE #You should get the text, below : One#two#three#four#five#six#seven#eight#nine#ten#eleven#twelve# One#two#three#four#five#six#seven#eight#nine#ten#eleven# One#two#three#four#five#six#seven#eight#nine#ten# Other text NOT concerned# by this Search Replacement# One#two#three#four#five#six#seven#eight#nine# One#two#three#four#five#six#seven#eight# One#two#three#four#five#six#seven# Bla bla blah# Bla bla blah# Bla bla blah# One#two#three#four#five#six# One#two#three#four#five# One#two#three#four# Dummy text# inserted, in between !# One#two#three# One#two# One# I want#this#to be #last#
 After running the following S/R, SEVENtimes, one after another :SEARCH (?-s)([^@#\r\n]+?)#(.+#)?([^@#\r\n]+)#REPLACE \3@#\2\1@#The modified text is, now : twelve@#eleven@#ten@#nine@#eight@#seven@#six@#five@#four@#three@#two@#One@# eleven@#ten@#nine@#eight@#seven@#six#five@#four@#three@#two@#One@# ten@#nine@#eight@#seven@#six@#five@#four@#three@#two@#One@# Other text NOT concerned# by this Search Replacement# nine@#eight@#seven@#six@#five#four@#three@#two@#One@# eight@#seven@#six@#five@#four@#three@#two@#One@# seven@#six@#five@#four#three@#two@#One@# Bla bla blah# Bla bla blah# Bla bla blah# six@#five@#four@#three@#two@#One@# five@#four@#three#two@#One@# four@#three@#two@#One@# Dummy text# inserted, in between !# three@#two#One@# two@#One@# One# last@#to be @#this@#I want@#Seven consecutive runs of that regex S/R are required, to get the sought text : - Run 1 : 12 occurrences replaced
- Run 2 : 10 occurrences replaced
- Run 3 : 7 occurrences replaced
- Run 4 : 5 occurrences replaced
- Run 5 : 3 occurrences replaced
- Run 6 : 1 occurrences replaced
- Run 7 : 0 occurrences replaced
 Note : After each run, you may hit the Find Next button, before hitting the Replace All button, to guess the general process ! The part [^@#\r\n], in the searched regex, represents any single character, different from@,#,\nand\r
 Then, after running the last S/R, once : SEARCH (?-s)(@?#)(?=.)|@?#REPLACE ?1\x20[NEWLINE]\x20We obtain our final text : twelve [NEWLINE] eleven [NEWLINE] ten [NEWLINE] nine [NEWLINE] eight [NEWLINE] seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One eleven [NEWLINE] ten [NEWLINE] nine [NEWLINE] eight [NEWLINE] seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One ten [NEWLINE] nine [NEWLINE] eight [NEWLINE] seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One Other text NOT concerned by this Search Replacement nine [NEWLINE] eight [NEWLINE] seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One eight [NEWLINE] seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One seven [NEWLINE] six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One Bla bla blah Bla bla blah Bla bla blah six [NEWLINE] five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One five [NEWLINE] four [NEWLINE] three [NEWLINE] two [NEWLINE] One four [NEWLINE] three [NEWLINE] two [NEWLINE] One Dummy text inserted, in between ! three [NEWLINE] two [NEWLINE] One two [NEWLINE] One One last [NEWLINE] to be [NEWLINE] this [NEWLINE] I wantThe search part looks for the regex @?#, either, inside the lines ( case group 1 defined ) or at end of lines ( case NO group 1 )The replacement part means that, IF group 1 exists, the searched text is replaced by the string [NEWLINE], surrounded by space characters, ELSE NO replacement occurs Et voilà ! Best Regards, guy038 
- 
- 
 Thanks very much! 
 But just to be clear, in the first regexSEARCH (?-s)\x20?[NEWLINE]\x20?|(?<=.)$ REPLACE # Removing the value ** \x20** will result this
 SEARCH (?-s)?[NEWLINE]?|(?<=.)$Which will result capturing the space “if available” before and after [NEWLINE] string in first and last group? 
- 
 I found out the removing the \x20does what I described… Thanks again
- 
 I modified the original Search regex, as it catches some Unicode characters with will break the line in a middle of a word. So in the modified regex I replace \W with \x20 (space character)… so far no word breaking issues 
 Here is the modified one
 (?-s).{1,44}(?=\x20)


