webForumDet fria alternativet

Plocka ut bit av sträng

JavaScript

4 svar · 279 visningar · startad av nitro2k01

Medlem sedan aug. 20039 340 inlägg
Frågan#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.

Medlem 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.

Medlem sedan aug. 20039 340 inlägg
#3

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

Medlem 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!".

Medlem sedan aug. 20039 340 inlägg
#5

Tack!

276 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)