2011-07-05 2 views
2
SetColoursSizes('0', '[Select Colour]', '0', '[Select Size]', 0,585.00,500.00); 

Ceci est un exemple de la chaîne que je voudrais faire correspondre en PHP, puis caputre les deux dernières variables, dans le cas, '585.00' et '500.00'. Remarque: ces chiffres doivent être flexibles, car ils peuvent être compris entre 0,50 et 1500,00 $.RegEx pour les nombres décimaux dans la chaîne

Quelqu'un peut-il aider avec le PHP/RegEx pour cela?

Cheers, Michael

+0

Juste par curiosité , votre PHP est-il regexing autre PHP? – sdleihssirhc

+0

Non, c'était gratter une page donc c'était regexing Javascript imbriqué dans une page HTML entière –

Répondre

1

Le code suivant capture vos deux nombres/arguments décimaux finales en $ matches [2] et $ matches [3]:

<?php 
    $matches = array(); 
    preg_match('/SetColoursSizes\(([^,]+,\s*){5}(\d+\.?\d*),\s*(\d+\.?\d*)/', "SetColoursSizes('0', '[Select Colour]', '0', '[Select Size]', 0,0.50,500.00);", $matches); 
    print_r($matches); 
?> 
+0

Parfait. Cela a travaillé un charme. Merci tas –

1
$matches = array(); 
preg_match('~([\d\.]+),\s*([\d\.]+)\);$~', $yourString, $matches); 

$matches[1] et $matches[2] devraient avoir les deux chiffres.

2

Cette regex fonctionnera:

SetColoursSizes\s*\([^(]+,\s*([0-9.$]+)\s*,\s*([0-9.$]+)\s*\) 
Questions connexes