Macro for Open, Find and Replace and Save
- 
@Lycan-Thrope :
I will take your comments into account.
Greetings :-) - 
@guy038 said in Macro for Open, Find and Replace and Save:
Hello, @josé-luis-montero-castellanos, @aln-kilborn and all,
@josé-luis-montero-castellanos, regarding your regex S/R :
- 
SEARCH
(?s)(<St)(.)(/S)(.)(<Xt)(.)(/X)|(<Xt)(.)(/X)(.)(<St)(.)(/S) - 
REPLACE
?1\5\2\7\4\1\6\3:${12}${9}${14}${11}${8}${13}${10} 
Why do you need the leading in-line modifier
(?s), in the search part ? Do you mean that the single char.in group2,4,6,9,11and13may also represent a line-break char (\ror\n) ?I suppose not ! Then, your correct search regex is rather :
(?-s)(<St)(.)(/S)(.)(<Xt)(.)(/X)|(<Xt)(.)(/X)(.)(<St)(.)(/S)where any
.single char will represent a non-break char, only !
Now, I noticed that the groups used, in replacement, for each alternative of the search regex, are in the same order ! Then, you can use, preferably, a specific feature of the Boost Regex engine, called
Branch ResetFor instance, in your regex, the numbers of each group are :
(?-s)(<St)(.)(/S)(.)(<Xt)(.)(/X)|(<Xt)(.)(/X)(.)(<St)(.)(/S) Gr : 1 2 3 4 5 6 7 |8 9 10 11 12 13 14If we use the
Branch Resetfeature the search regex becomes :(?-s)(?|(<St)(.)(/S)(.)(<Xt)(.)(/X)|(<Xt)(.)(/X)(.)(<St)(.)(/S)) Gr: 1 2 3 4 5 6 7 |1 2 3 4 5 6 7Thus, your entire regex S/R can be simplified as below :
- 
SEARCH
(?-s)(?|(<St)(.)(/S)(.)(<Xt)(.)(/X)|(<Xt)(.)(/X)(.)(<St)(.)(/S)) - 
REPLACE
\5\2\7\4\1\6\3 
For instance, given this INPUT text :
<St2/S4<Xt6/X <Xt9/XB<StD/SYou would get the OUTPUT text, below :
<Xt2/X4<St6/S <St9/SB<XtD/XNotes :
- 
The
Regular expressionoption must be selected - 
Preferably, tick the
[Wrap around](https://www.ahijoy.com/)option 
Best Regards,
guy038
I tried it but didn’t work
 -