17. december 2002 - 13:29Der er
17 kommentarer og 2 løsninger
RegExp Search
Hvis jeg f.eks har en text bestående af 3 linier...
ostepops gifgaf ostepips ostehest
og jeg vil søge på det første som starter med "oste", men ikke slutter med pops, hvordan kunne jeg så gøre det?
"oste[^p]" <-- Starter med oste men må ikke have p lige efter, dvs den finder ostehest
Troede at man bare kunne lave en "oste[^pops]", men selvfølgelig efter lidt mere læsning fandt jeg ud af det betyder at hverken p, o eller s må komme lige efter...
Jeg vil så tro at det er noget i stil med "oste[^p][^o][^p][^s]", men hver af not-ledene bliver jo tolket for sig :( Men syntes ikke lige jeg kan finde nogle form for AND/&&/& imellem ledene.
p.s: Skal bruges til søgning i en editor jeg har gang i, og det ville være perfekt med sådanne statements..
Jeg har en funktion som resultere positionen på det første stykke tekst den finder som matcher med den aktuelle RegExp som man har givet, så det ville nok være lidt svært med ovenstående.
Plus at det så heller ikke ville være særlig dynamisk, da alle RegExp's gerne skulle virke.
Korrekt, men begge eksempler er jo ikke ren RegExp for hele strengen. Kode-stump dur ikke, da man kan lave mange andre RegExp som f.eks "indhold Ostepips, men IKKE gifgaf". Så blev man nødt til at lave endnu en kodestump osv osv...
For som jeg sagde tidligere: >Kommentar: nikrasitf >19/12-2002 12:31:11 >Kan sagtens lave noget kode selv som have den funktionalitet, >men så ville muligheden for RegExp ligesom ryge sig en tur.
Jo selvfølgelig... Jeg har en RegExp-komponent som jeg giver en RegExp-sætning, og derefter giver den teksten som jeg vil søge i.
Rent funktionalt starter den fra starten af teksten og hopper en character frem indtil at RegExp'en er valid på den aktuelle position.
Så ved teksten "ostepops gifgaf ostepips" vil jeg have en RegExp som siger... Giv mig positionen på det første tekststykke som starter med "oste" men <u>ikke</u> har pops efterfølgende. Dvs den skulle så finde ostepips istedet for.
Prøvede lige "/^oste(?im)(?!pops)[a-z]*/" men den er desværre ikke valid, faktisk springer komponenten i luften og bitcher over syntax-error.
Hvilket programmeringssprog arbejder du med, og hvilken funktion bruger du?
Den RegExp er ganske valid, og virker - jeg har selv testet den. Den er bare i PCRE - Perl Compatible Regular Expression. De fleste programmeringssprog har en funktion som kan tolke PCRE.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.