Page 1 of 1

regexreplace help

Posted: 07 Sep 2016, 03:10
by noname

Code: Select all

data=
(
F:\korean drama\yu na\Yoona's Street Episode 50.mp4
F:\korean drama\yu na\Yoona's Street Episode 505.mp4
F:\korean drama\yu na\Yoona's Street Episode 5021.mp4
F:\korean drama\yu na\Yoona's Street Episode 50464.mp4
)

index:=["a","b","c","d"]
Loop, parse,data,`n
list .= regexreplace(A_LoopField,"(\d\d)\d?\d?\d?","$1" index[A_Index]) "`n"

msgbox %list%
This works but it is possible to simplify the "\d?\d?\d?" part?

Re: regexreplace help

Posted: 07 Sep 2016, 04:50
by drawback

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)\d{1,3}","$1" index[A_Index]) "`n"

Re: regexreplace help

Posted: 07 Sep 2016, 05:21
by noname
Thanks but the first one misses the "a" index .........
---------------------------
Episode.ahk
---------------------------
F:\korean drama\yu na\Yoona's Street Episode 50.mp4
F:\korean drama\yu na\Yoona's Street Episode 50b.mp4
F:\korean drama\yu na\Yoona's Street Episode 50c.mp4
F:\korean drama\yu na\Yoona's Street Episode 50d.mp4

---------------------------
OK
---------------------------

Re: regexreplace help

Posted: 07 Sep 2016, 05:36
by Helgef
drawback wrote:

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)\d{1,3}","$1" index[A_Index]) "`n" ; not working
list .= regexreplace(A_LoopField,"(\d\d)\d{0,3}","$1" index[A_Index]) "`n" ; working
Alternative, working for more digits between the two first and the .mp4:

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)(\d+|)","$1" index[A_Index]) "`n"
list .= regexreplace(A_LoopField,"(\d\d)\d{0,}","$1" index[A_Index]) "`n" 
What is is simpler? I don't know.

Re: regexreplace help

Posted: 07 Sep 2016, 05:48
by noname
Thanks Helgef i will use the d{0,3} , i tried itbefore but unfortunately used letter "o" instead of 0 :)

(\d+|) is a nice one !

Re: regexreplace help

Posted: 07 Sep 2016, 05:50
by Helgef
noname wrote:Thanks Helgef i will use the d{0,3} , i tried itbefore but unfortunately used letter "o" instead of 0 :)

(\d+|) is a nice one !
Np, I hate when that happens o_0

Re: regexreplace help

Posted: 07 Sep 2016, 08:36
by AlphaBravo
Helgef wrote: Alternative, working for more digits between the two first and the .mp4:

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)(\d+|)","$1" index[A_Index]) "`n"
list .= regexreplace(A_LoopField,"(\d\d)\d{0,}","$1" index[A_Index]) "`n" 
What is is simpler? I don't know.
or maybe

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)\d*","$1" index[A_Index]) "`n"

Re: regexreplace help

Posted: 07 Sep 2016, 09:26
by Helgef
AlphaBravo wrote: or maybe

Code: Select all

list .= regexreplace(A_LoopField,"(\d\d)\d*","$1" index[A_Index]) "`n"
Even better!