Hulp met variable maken regular expression

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper Coolleman

Jasper Coolleman

07/04/2016 17:01:30
Quote Anchor link
Ben 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.
 
PHP hulp

PHP hulp

24/04/2024 00:24:44
 
Team Zero

Team Zero

14/04/2016 10:55:21
Quote Anchor link
$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

:)
Gewijzigd op 14/04/2016 16:00:42 door Team Zero
 
Jasper Coolleman

Jasper Coolleman

14/04/2016 11:07:53
Quote Anchor link
Top, Dit is super.
Bedankt voor de hul Team Zero
 
Team Zero

Team Zero

14/04/2016 15:56:36
Quote Anchor link
:)
Gewijzigd op 14/04/2016 15:57:59 door Team Zero
 
Thomas van den Heuvel

Thomas van den Heuvel

14/04/2016 16:01:02
Quote Anchor link
Wat @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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.