webForumDet fria alternativet

Plocka ut bit av sträng

4 svar · 279 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20039 342 inlägg
#1

Hej! Jag behöver plocka ut en bit av en sträng, typ så här:
111härkommer vadsomhelst!222
Där allt mellan 111 och 222 plockas ut. Helst med ett reguljärt uttryck.

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Ett "non-greedy" exempel;

str="111härkommer vadsomhelst!222";
newstr=(str.match(/111([\d\D]+?)222/))?RegExp.$1:null;

Alltså den tar den minsta matchningen av allt mellan 111 och 222, vill du ha den greedy plockar du bort frågetecknet i regexp-delen.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Vad är egentligen skillnaden mellan greedy och non-greedy?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

I exemplet ovan gör det ingen skillnad, men skulle strängen se ut så här; "111härkommer vadsomhelst!222lite mer text222" så skulle ett greedy-uttryck plocka ut största möjliga match, dvs. "härkommer vadsomhelst!222lite mer text" medans ett non-greedy skulle plocka ut "härkommer vadsomhelst!".

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

Tack!

125 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)