Hallo allemaal,
Ik ben nog niet heel bekend met regex, en krijg het niet voor elkaar om meer dan 1 keer de pattern te laten matchen.
Om te testen gebruik ik het volgende:
Maar wat ik zoek is:
Ik heb al verschillende combinaties met (het geheel)* en (het geheel)? geprobeerd, maar dat gaf helaas niets meer terug.
Kan iemand mij aub vertellen hoe ik kan zorgen dat het pattern, wanneer aanwezig in $string2, meerdere malen gematchd wordt?
Alvast bedankt!
Ik ben nog niet heel bekend met regex, en krijg het niet voor elkaar om meer dan 1 keer de pattern te laten matchen.
Om te testen gebruik ik het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $matches2 = array(); $string2 = 'foo{CUSTOM|ORDER|Order_id: [order_id]|2}bar foo{CUSTOM|PRODUCT|Naam: [pr_name]<br/>Prijs: [pr_price]|15}bar'; $pattern = '/\{CUSTOM{1}\|(VENDOR|ORDER|PRODUCT{1})\|([^|]*)\|?(\d*)?}/'; // werkt goed, alleen 1 keer $match = preg_match( $pattern, $string2, $matches2 ); // $match blijft op 0 of 1 //geeft als uitput matches2: Array ( [0] => {CUSTOM|ORDER|Order_id: [order_id]|2} [1] => ORDER [2] => Order_id: [order_id] [3] => 2 ) |
Maar wat ik zoek is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Array ( [0] => Array ( [0] => {CUSTOM|ORDER|Order_id: [order_id]|2} [1] => ORDER [2] => Order_id: [order_id] [3] => 2 ) [1] => Array ( [0] => {CUSTOM|PRODUCT|Naam: [pr_name]<br/>Prijs: [pr_price]|15} [1] => PRODUCT [2] => Naam: [pr_name]<br/>Prijs: [pr_price] [3] => 15 ) ) |
Ik heb al verschillende combinaties met (het geheel)* en (het geheel)? geprobeerd, maar dat gaf helaas niets meer terug.
Kan iemand mij aub vertellen hoe ik kan zorgen dat het pattern, wanneer aanwezig in $string2, meerdere malen gematchd wordt?
Alvast bedankt!