Gå til innhold

Parse gjennom tekst og finne ord


Anbefalte innlegg

Skrevet

Jeg vil søke gjennom en input-tekst og finne følgende:

- Tekst inni anførselstegn hvor linjen inneholder 'conID_<tall(1,30)>'

Output:

echo '<strong>'.$quotes.':</strong> '.$conID.'.';

Det kan være flere linjer med forskjellig formattert data (i anførselstegnende), eksempel:

basd asgfdg bla bla bla asdfdsfsdf sd

fdgsfd gdfgssdfg "123 4567 89" fdg conID_3565765 dsfsdfs dsfsd sdf sdf s

gfsdg hgfhdf asf bla bla

fdgsfd gdfgssdfg "123 456790" fdg conID_3554355 dsfsdfs dsfsd sdf sdf s

fdgsfd gdfgssdfg "123 456 hey" fdg conID_35654665 dsfsdfs dsfsd sdf sdf s

Her vil jeg at output skal bli slik:

<strong>123 4567 89:</strong> conID_3565765

<strong>123 456790:</strong> conID_3554355

<strong>123 456 hey:</strong> conID_35654665

Videoannonse
Annonse
Skrevet

Ta en titt på preg_match_all i manualen. Du kan for eksempel gjøre det slik:

 

$matches = array();
$pattern = "/\"(.+)\".+(conID_\d{1,30})/";
if(preg_match_all($pattern, $dinTekst, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {	
	print('<strong>' . $match[1] . ':</strong> ' . $match[2] . '<br/>');
}
}

Skrevet (endret)

Takk for hjelpen!

 

Av en eller annen grunn kommer det en ekstra \ bak alle $match[1] - hvordan får jeg bort den?

 

Edit: nvm. :)

Endret av Jooakim

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...