Gilbert Skrevet 25. november 2004 Del Skrevet 25. november 2004 Regular expression er seriøst en utfordring. http://www.phpbuilder.com/columns/dario19990616.php3 Har lest på artikkelen ovenfor, men det blir aldri orden i systemet. Jeg er ute etter to forskjellige "ekspresjoner", og håper noen kan skrive kodesnutten og ikke minst forklare de 1) a-å store og små, 0-9 og spesialtegn _ . , - lenge mellom 4 og 10 bokstaver 2) a-å store og små, 0-9 lengde mellom 4 og 15 Lenke til kommentar
RipZ- Skrevet 25. november 2004 Del Skrevet 25. november 2004 Lær deg å skriv skikkelige regulære uttrykk. PHP sin funksjon ereg() er treg. Lærer du deg regulære uttrykk vil det funke i de fleste språk samt at du får en bedre forståelse Vet ikke om jeg forstod helt eneren. "og spesialtegn _ . , - lenge..."? 2 er iallfall enkel: [a-zæøå0-9]{4,15} Bruk modifieren 'i' som gjør at utrykket ser bort i fra store/små bokstaver. Eksempel på bruk av utrrykket i funksjon preg_replace("/[a-zæøå0-9]{4,15}/i", ...) Alt mellom [ og ] er tillatte bokstaver. a-z betyr a til z. Vi må inkludere æ, ø og å fordi PHP normalt sett ikke oppfatter a-å som en serie av bokstaver fra a til å slik som vi kjenner til dem. {4, 15} betyr at bokstavene mellom [ og ] kan være utrrykt 4 til og med 15 ganger. Lenke til kommentar
Gilbert Skrevet 25. november 2004 Forfatter Del Skrevet 25. november 2004 mente spesialtegnene underscore, komma, punktum og bindestrek. lenge skulle bli lengde, men ble litt vanskelig å lage en bra setning ettersom punktum kunne missforstås... ser bra ut det eksempelet du har på nr. to, husker spesielt at et problem jeg hadde med disse var at den kun lette etter et eksempel av det jeg forlagte, dvs at [a-z]{1,3} godkjente alt som hadde mellom 1 og 3 av bokstavene a-z. men skal se om det fungerer det du skriver Lenke til kommentar
Gilbert Skrevet 25. november 2004 Forfatter Del Skrevet 25. november 2004 {4, 15} betyr at bokstavene mellom [ og ] kan være utrrykt 4 til og med 15 ganger. Betyr dette at jeg må bruke en annen php-funksjon for å kontrollere at samlet lengde ikke blir over et visst antall? For abcd-------- oppfyller kravet om at de nevnte tegnene skal komme mellom 4 og 15 ganger? Lenke til kommentar
TorS Skrevet 25. november 2004 Del Skrevet 25. november 2004 Betyr dette at jeg må bruke en annen php-funksjon for å kontrollere at samlet lengde ikke blir over et visst antall? For abcd-------- oppfyller kravet om at de nevnte tegnene skal komme mellom 4 og 15 ganger? Funksjonen sjekker om antall tegn er mellom fire og femten... Du behøver ikke noe utenom den. Du kan heller ikke bruke '-', siden funksjonen bare godtar a-å og 0-9. Lenke til kommentar
robgar Skrevet 25. november 2004 Del Skrevet 25. november 2004 {4, 15} betyr at bokstavene mellom [ og ] kan være utrrykt 4 til og med 15 ganger. Betyr dette at jeg må bruke en annen php-funksjon for å kontrollere at samlet lengde ikke blir over et visst antall? For abcd-------- oppfyller kravet om at de nevnte tegnene skal komme mellom 4 og 15 ganger? {4, 15} betyr minst 4 og maks 15 tegn, {2} betyr maks 2 tegn og ikke mindre heller. {4, } betyr minst 4 tegn og ellers så mange man vil. du kan også bruke + * ? etter en parentes som bestemmer hvor mange av det inni parentesen er lov. (hva + * ? betydde husker jeg ikke, men det stod i den artikkelen du postet). EKS: (([a-zæøå0-9\.])*){4, 15} Lenke til kommentar
RipZ- Skrevet 25. november 2004 Del Skrevet 25. november 2004 robgear: Eksempelet ditt var litt snålt. Det betyr rett og slett at a-zæøå0-9 og punktum kan være uttrykt uendelig mange ganger eller null ganger. Dette igjen kan være uttrykt fire til femten ganger. 4 * 0 = 0. 4 * uendelig = uendlig Med andre ord, {4, 15} har her ingen nytte. Det har i grunn ikke parantesene heller. For å bruke "vanlig" regulæruttrykk må man bruke preg_*-funksjonene til PHP. Ereg er en forenklet regulærutgave kan man si. 1) a-å store og små, 0-9 og spesialtegn _ . , - lenge mellom 4 og 10 bokstaver Bare å følge det første eksempelet mitt. Men inkluder de nye tegnene. '.' (punktum) og '-' (bindestrek) regnes som spesialtegn da punktum representerer et tilfeldig tegn, mens bindestrek markerer en range. Disse må derfor escapes. [a-zæøå0-9_,\-\.]{4,15} Husk å bruk modifieren 'i'. Lenke til kommentar
Torbjørn Skrevet 26. november 2004 Del Skrevet 26. november 2004 (endret) feil post. jeg blingset. Endret 26. november 2004 av Torbjørn Lenke til kommentar
robgar Skrevet 28. november 2004 Del Skrevet 28. november 2004 Min feil, jeg får lese artikkelen en gang til... Lenke til kommentar
Gilbert Skrevet 17. februar 2005 Forfatter Del Skrevet 17. februar 2005 (endret) *borte* Endret 17. februar 2005 av fjartan Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå