Gå til innhold

Lite problem i regex


Anbefalte innlegg

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
Videoannonse
Annonse

$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 :p

Endret av onTop
Lenke til kommentar

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

<?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 av Jonas
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...