I Insider Medlem sedan jan. 2000 978 inlägg Frågan 2 okt. 2007 12:58 #1 Jag har en lång textsträng som ser ut ungefär såhär:
124,5653,562,797994,2949823,3423,234243,234234,112366,1233,1241,123,331
Jag vill med ett reguljärt uttryck matcha vart 5:e kommatecken.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Vad vill du få ut? Antalet vart-femte-förekomster eller allting mellan dessa kommatecken?
I Insider Medlem sedan jan. 2000 978 inlägg I slutändan vill jag byta ut vart femte kommatecken till ett semikolon.
Alternativt kanske man kan sortera ut allting mellan vart femte komma...
Jag kanske tänker fel med att använda regexp i det här fallet. Om jag ska göra det med kod är jag låst till att använda tcl, men det kanske är enda lösningen.
spango Medlem sedan juni 2000 8 205 inlägg Ska du byta ut kan du typ använda
s/([^,]*,[^,]*,[^,]*,[^,]*,[^,]*),/$1;/g
P Peter S Medlem sedan dec. 2002 5 483 inlägg För att byta ut vart femte kommatecken mot semikolon, använd mönstret:
/(?:((?:[^,]*,){4}[^,]*),)/g
Använd en replace()-funktion och ersätt med "$1;".
I JS blir det
alert( "124,5653,562,797994,2949823,3423,234243,234234,112366,1233,1 241,123,331".replace(/(?:((?:[^,]*,){4}[^,]*),)/g, "$1;") )
I Insider Medlem sedan jan. 2000 978 inlägg Tackar! :) Ska testa vidare.