Example:
Code: Select all
Original string:
text<field name>text<field address>text<field name>text<field address>text<field name>
Expected result:
text<field name>text<field address>text<field name DUP1>text<field address DUP1>text<field name DUP2>
Code: Select all
Original string:
text<field name>text<field address>text<field name>text<field address>text<field name>
Expected result:
text<field name>text<field address>text<field name DUP1>text<field address DUP1>text<field name DUP2>
Code: Select all
#Requires AutoHotkey v1.1.35+
#SingleInstance Force
str := "text<field name>text<field address>text<field name>text<field address>text<field name>"
while (p := RegExMatch(str, "(<([^>]+)>)(?=.*?\1)", m)) {
c := o := 0
Loop {
str := RegExReplace(str, m1, "<" m2 " DUP" ++c ">",o,1, p+StrLen(m1))
} Until o=0
}
MsgBox % "[" str "]"
andymbody wrote: ↑28 Jan 2024, 19:47Try thisCode: Select all
#Requires AutoHotkey v1.1.35+ #SingleInstance Force str := "text<field name>text<field address>text<field name>text<field address>text<field name>" while (p := RegExMatch(str, "(<([^>]+)>)(?=.*?\1)", m)) { c := o := 0 Loop { str := RegExReplace(str, m1, "<" m2 " DUP" ++c ">",o,1, p+StrLen(m1)) } Until o=0 } MsgBox % "[" str "]"