chrtsta Skrevet 2. juli 2008 Del Skrevet 2. juli 2008 Heisann. Jeg har prøvd å sette meg inn i regex i det siste, men tydeligvis er ikke skillsa helt proffe ennå. Jeg har en tekststreng som forenklet ser slik ut: '(1)(2)(3)'. Jeg vil finne frem til 1, 2 og 3, og prøvde med '/\((.*)\)/', men den vil kun trekke ut 1)(2)(3 som en hel substring, og ikke hvert tall som en substring hver. Jeg bruker forøvrig preg_match_all-funksjonen, og innholdet i hver parantes, vil endre seg helt tilfeldig. Noen som kan hjelpe meg med dette? Lenke til kommentar
onTop Skrevet 2. juli 2008 Del Skrevet 2. juli 2008 (endret) $txt = '(3)(7)(4)'; preg_match("/(\(.+\))(\(.+\))(\(.+\))/", $txt, $out); echo $out['1']; // Skriver ut 3 echo $out['2']; // Skriver ut 7 echo $out['3']; // Skriver ut 4 Har ikke teste dette, og jeg vet ikke helt om jeg skjønte hva du mente. Men du kan jo prøve deg litt frem med hva jeg har gjort her - Plukke ut tallene fra parantesene så du har de i egne variabler. Er egentlig ny i regexp jeg også, så mulig jeg er langt ute på jordet Endret 2. juli 2008 av onTop Lenke til kommentar
Jonas Skrevet 2. juli 2008 Del Skrevet 2. juli 2008 Eventuelt kan du prøve noe slikt som følgende, hvor du ikke er avhengig at teksten inneholder akkurat tre tall. preg_match_all ( '/\(([0-9]+)\)/', $text, $matches ); Lenke til kommentar
chrtsta Skrevet 3. juli 2008 Forfatter Del Skrevet 3. juli 2008 Takker og bukker. Fant ut at problemet mitt var at jeg brukte .* som "hvilket som helst tegn", og da lar den jo også parantesene komme gjennom. Noen som kan si meg hva jeg bør bruke når jeg skal ha hele setningen med norske tegn og slikt, inni ene parantesen? Burde jeg vel sagt, men akkurat tall valgte jeg som eksempel, men det er da altså ikke gitt. Jeg vil ha tall, bokstaver, mellomrom og norske tegn inne i parantesene. Lenke til kommentar
Jonas Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 (endret) <?php $text = '(hokkus)(pokkus)(sim)(zalabim)'; preg_match_all ( '/\(([^(^)]+)\)/', $text, $matches ); echo '<pre>' . print_r ( $matches, true ) . '</pre>'; ?> Edit: ^ betyr ikke match, og uttrykket sier at alt, med unntak av paranteser, skal matche. Endret 3. juli 2008 av Jonas Lenke til kommentar
Jonhoo Skrevet 8. juli 2008 Del Skrevet 8. juli 2008 OBS: Blir preg_match_all ( '/\(([^()]+)\)/', $text, $matches );, ikke som Jonas skrev preg_match_all ( '/\(([^(^)]+)\)/', $text, $matches );.. En ^ for mye 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å