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

這是一個我希望在PHP中匹配的字符串示例,然後支持最後兩個變量,例如'585.00'和'500.00'。注意:這些數字應該是靈活的,因爲它們可以是從0.50到$ 1500.00的任何值。正則表達式爲字符串中的十進制數字

任何人都可以用這個PHP/RegEx幫忙嗎?

乾杯, 邁克爾

+0

只是出於好奇,是你的PHP regexing其他PHP? – sdleihssirhc

+0

不,它正在抓取頁面,所以它是regexing Javascript嵌套在整個HTML頁面 –

回答

1

下面的代碼捕獲你的最後兩個數字/十進制的參數在$ [2]匹配和$匹配[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

完美。這很有魅力。感謝堆 –

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

$matches[1]$matches[2]應該有兩個數字。

2

此正則表達式將工作:

SetColoursSizes\s*\([^(]+,\s*([0-9.$]+)\s*,\s*([0-9.$]+)\s*\) 
相關問題