[PHP] Regex probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste GOT'ers,

Ik zit met het volgende, hopelijk kan één van jullie me helpen.

Ik wil een grote lap tekst (in een string) splitten op een bepaalde tag (de tag is [page=eennaam]).
Dat gaat goed met de volgende code:
PHP:
1
$this->tabtext=preg_split("/\\[(page){1}(=?)(.*?)\]/",$this->text);

Wat ik nu graag wil is het gedeelte dat in (.*?) word gefilterd, oppakken en in een arraytje stoppen. Ik denk dat ik dat niet via preg_split kan doen, maar via een andere regular expressie functie binnen PHP.

Ik heb me rot gezocht, maar helaas niet gevonden. Wellicht dat één van jullie me op weg kan helpen?

gr.
Wouter.

[ Voor 3% gewijzigd door Verwijderd op 29-08-2005 18:01 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP:
1
2
3
4
5
$text = 'tralala [page=naampje] hoi';

$split = preg_split('/\[page=(\w+)\]/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);

print_r($split);

geeft
code:
1
2
3
4
5
6
Array
(
    [0] => tralala 
    [1] => naampje
    [2] =>  hoi
)

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, maar hoe weet ik dat "naampje" uit de page tag komt?

Daarnaast kan de page tag meerdere keren voorkomen in een stuk tekst.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dus? Heb je al eens de moeite gedaan om zelf te kijken wat je voor uitvoer krijgt bij meerdere page-tags?
PHP:
1
2
3
4
5
6
7
8
9
<?

$text = 'tralala [page=naampje] hoi [page=blaat] nogwat';

$split = preg_split('/\[page=(\w+)\]/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);

print_r($split);

?>

En nee, het is geen toeval dat "naampje" en "blaat" op oneven indexen staan. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmzzgrrr.. super, bedankt. :)
Het kan dus wel met de split.