Hej.
Jeg står og skal lave et lille script der kan finde et ord i en tekst, og til dette bruger jeg selvfølgelig regular expressions.
Opgaven er desværre ikke HELT så simpel som den lyder, da de ord jeg vil finde ikke altid bare er alene-stående med et mellemrum på hver side.
Hvis vi nu siger jeg vil finde ordet "smed", så er kriteriet, at den har fundet ordet, hvis den finder et sted hvor der står smed, og foran ordet smed er der enten et mellemrum, \, /, -, :, ;, ., !, ? et komma eller ingenting og det samme skal der står bagefter ordet. Så den skal altså både kunne finde smed i teksten "her er en smed der er god", "her er en smed, der er god", "her er en smed. han er god", "han er håndværker/smed", "han er håndværker\smed" osv. - you get the point. Indtil videre har jeg fået fiflet mig frem til følgende pattern:
/([\s\\\\,\.:!?;\-\/])($name)([\s\\\\,\.:!?;\-\/])/ - hvor $name er en PHP-variabel der indeholder det ord jeg søger efter.
Dette virker også fint nok - NÆSTEN. Den vil bare ikke fange ordet hvis det er det første eller det sidste ord i en sætning, da der jo så ikke står nogen af de angivede tegn foran eller bagefter ordet - der står jo ingenting. Hvordan hulen kan jeg løse dette? Nogen idéer?
Det er ret svært at forklare synes jeg, så hvis det er lidt utydeligt hvad det er jeg egentlig vil, så må I bare spørge, så skal jeg nok prøve at uddybe så godt jeg kan!
På forhånd tak for hjælpen.
Mvh. Julius
--