[php] regexp OF/OF probleem binnen ()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$regel_array = array("test expressie 345", "test string 234", "test regel 12345");

for ($I=0;$I<sizeof($regel_array);$I++) {

    $regel = $regel_array[$I];
    print ($regel.": ");

    if (preg_match ("/^test (expressie [0-9]+)$/i", $regel, $output)) {
        $id = $output["1"];
        print ("match ".$id."<br>\n");
    } else {
        print ("geen match<br>\n");
    }
}

?>


Nu wil ik alleen de preg_match regel zo aanpassen dat het script TRUE geeft op alle 3 de regels dus zonder de rest van het script aan te passen. Ik heb getest:

1: preg_match ("/^test (expressie [0-9]+)$/i", $regel, $output) geeft:
match expressie 345
geen match
geen match

2: preg_match ("/^test (expressie|string [0-9]+)$/i", $regel, $output) geeft:
geen match
match string 234
geen match

3: preg_match ("/^test ([expressie|string] [0-9]+)$/i", $regel, $output) geeft:
geen match
geen match
geen match

Ik wil dus zoiets als [expressie|string|regel] (dus OF expressen OF string OF regel) gebruiken binnen de al aanwezige () zodat de eerste OF contructie ook in $output["1"] wordt gezet en ik geen $output["2"] hoef te gebruiken en de regexp moet opsplitsen en 2 maal (). (ik weet niet hoe die match-output haakjes heten).
Weet iemand hoe dit binnen de preg_match van PHP moet?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

heel simpel:
PHP:
1
preg_match ("/^test ((expressie|string|regel) [0-9]+)$/i", $regel, $output)

Intentionally left blank