Hulp met variable maken regular expression
Jasper Coolleman
07/04/2016 17:01:30Ben net bezig met regular expressions maar kan niet uit het volgende komen.
[Metadata.Text:Path="/Leo:Leo/leo:PurchaseOrders/leo:PurchaseOrder/leo:OrderObjects/leo:OrderObject[1]/@descr",Dataset="Xml",Model="XML"]
De "1" die tussen [] staat wil ik graag variabel maken en moet uit een andere xml halen. Hierdoor kan ik door een exerne selectie op verschillende plaatsen in de xml zoeken.
[Metadata.Text:Path="/Leo:Leo/leo:PurchaseOrders/leo:PurchaseOrder/leo:OrderObjects/leo:OrderObject[1]/@descr",Dataset="Xml",Model="XML"]
De "1" die tussen [] staat wil ik graag variabel maken en moet uit een andere xml halen. Hierdoor kan ik door een exerne selectie op verschillende plaatsen in de xml zoeken.
PHP hulp
16/11/2024 21:53:46Team Zero
14/04/2016 10:55:21$string = '[Metadata.Text:Path="/Leo:Leo/leo:PurchaseOrders/leo:PurchaseOrder/leo:OrderObjects/leo:OrderObject[1]/@descr",Dataset="Xml",Model="XML"]';
preg_match("/OrderObject\[(.?)\]/", $string, $result);
$theNumber = $result[1]; // Contains 1
:)
preg_match("/OrderObject\[(.?)\]/", $string, $result);
$theNumber = $result[1]; // Contains 1
:)
Gewijzigd op 14/04/2016 16:00:42 door Team Zero
Jasper Coolleman
14/04/2016 11:07:53Team Zero
14/04/2016 15:56:36:)
Gewijzigd op 14/04/2016 15:57:59 door Team Zero
Thomas van den Heuvel
14/04/2016 16:01:02Wat @Team Zero hierboven heeft aangepast is het volgende:
preg_match retourneert standaard het cijfer 1 als er een match is, 0 als er geen match is, en false als er iets is misgegaan. (Deel)patronen van de match worden in een aparte emmer opgevangen middels een derde parameter "matches" (in zijn voorbeeld is dit $result).
Je doet er trouwens verstandig aan om eerst te controleren of er een resultaat is, alvorens je rechtstreeks de waarde van het eerste subpatroon -dat mogelijk helemaal niet bestaat- retourneert.
preg_match retourneert standaard het cijfer 1 als er een match is, 0 als er geen match is, en false als er iets is misgegaan. (Deel)patronen van de match worden in een aparte emmer opgevangen middels een derde parameter "matches" (in zijn voorbeeld is dit $result).
Je doet er trouwens verstandig aan om eerst te controleren of er een resultaat is, alvorens je rechtstreeks de waarde van het eerste subpatroon -dat mogelijk helemaal niet bestaat- retourneert.