webForumDet fria alternativet

Matcha vart femte komma med RegExp

Programmering

5 svar · 602 visningar · startad av Insider

Medlem sedan jan. 2000978 inlägg
Frågan#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.

Medlem sedan dec. 20025 483 inlägg
#2

Vad vill du få ut? Antalet vart-femte-förekomster eller allting mellan dessa kommatecken?

Medlem sedan jan. 2000978 inlägg
#3

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.

Medlem sedan juni 20008 205 inlägg
#4

Ska du byta ut kan du typ använda

s/([^,]*,[^,]*,[^,]*,[^,]*,[^,]*),/$1;/g
Medlem sedan dec. 20025 483 inlägg
#5

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;") )
Medlem sedan jan. 2000978 inlägg
#6

Tackar! :) Ska testa vidare.

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)