Så här kanske, pattern: <!--.*?-->
Så kan du plocka bort <!-- och --> med vanliga strängfunktioner.
48 svar · 1 685 visningar · startad av oskars
Tjenare!
Jag försöker förstå hur jag ska göra ett mönster som hittar allting som ligger mellan <!-- och --> i en fil. Mitt första problem överhuvudtaget är hur man skriver just det mönstret, sen är det även så att i filen där jag vill hämta informationen så finns det flera såna här "items" som jag vill hämta.
Det kan typ se ut så här:
bla bla bal bla <!-- en text --> blasbasbdl <!-- en annan text -->. ..
Skulle vilja kunna hitta båda två "items" som finns på sidan. Det kan även finnas fler. Upp till typ 20...
Kan det räcka med ett mönster för att lösa problemet? Kan bara basic RegExp!
Tacksam för hjälp!
Mvh
Oskar
Så här kanske, pattern: <!--.*?-->
Så kan du plocka bort <!-- och --> med vanliga strängfunktioner.
Ja precis, ang. det där med att ta bort <!-- och -->
Kan inte testa det där just nu, men kommer jag få fram alla sådana items som finns på sidan?
Ja, om du sätter "global" till true.
set re = new regexp
re.global = true
re.pattern = "<!--.*?-->"
'...
Fantastiskt! Tackar och bugar :)
Jag har alltid använd .* för att hitta "vad som helst". Men vad gör ?-tecknet?
frågetecken är 0 eller 1 gång.
* är 0, 1 eller flera gånger.
. är valfritt tecken.
... och kombinationen *? betyder "hur många som helst, men så få som möjligt". Har du en sträng i stil med "noll <!-- ett --> två <!-- tre --> fyra", så matchar <!--.*--> hela substrängen "<!-- ett --> två <!-- tre -->" eftersom den är "greedy" och försöker matcha så mycket som det bara går. Använder du <!--.*?-->, däremot, matchas båda substrängarna "<!-- ett -->" och "<!-- två -->", eftersom *? avbryter så fort den kan.
Hm, har en hårding här som jag inte kan knäcka:
<!-- local id="5985" file="Oskar Schölander" -->5985<!-- local --> </span> </p> <p class="local"> <span class="cust">Oskar S.</span>
Här vill jag plocka ut värdet i id (4750), file (Oskar Schölander), <span class="cust"></span> (Oskar S.)
Det är alltså värdena inom parentes som jag vill hämta ut. Jag klarar det nästan, men det blir inget snyggt. Jag får med massa annan skit!
Hoppas jag kan få lite tips och exempel!
Mvh
Oskar
Är det alltid samma struktur i den? dvs id och file ?
Jepp jepp, det är det som är det fina :)
ok.. går "lätt" att lösa... tror jag försöker göra så du kan göra den "lite" dynamisk med.. återkommer.
Låter spännande! Jag hoppas att jag efter ditt exempel lär mig mer om hur det hänger ihop med RegExp. Har läst om mönster på webben, men det blir oftast för avancerat.
Varför kan jag inte bara lägga in .*? på fler än ett ställe? Testade ju det, men det blev konstigt då!
Klart du kan lägga in .*? på fler än ett ställe... var menar du? eller *vad menar du
Men t.ex, varför får jag itne göra så här:
<!-- local id=".*?" file=".*?" -->5985<!-- local --> </span> </p> <p class="local"> <span class="cust">.*?</span>
.*? = är inte ett bra sätt egentligen att ta match på:
[^"] då du har ett avslut på dina id och file. egentligen behövs den bara att avända den på din span tagg.
okej, jag får ogiltigt tecken när jag testar det där... fattar dock inget. Vill du visa ett exempel?
<!-- local id="[^"]+" file="[^"]+" -->5985<!-- local --> </span> </p> <p class="local"> <span class="cust">.*?</span>
(ASP måste ju även ha "" ;) men patternet i "ren" form borde vara så..
Jag fick uppfattningen om att du ville bara matcha det som fanns inne i <!-- --> med värden mm?
Jepp, men jag vill utveckla det nu! :) :) :)
Gööööööööööött nu fick jag det att funka! :) Tack!