2013-07-10 57 views
-3

兩個值我試圖獲得這種字符串用PHP正則表達式的兩個值:從文本中提取

bla bla bla 

Measures: 10,4 cm x 9 cm. 

bla bla bla 

結果:

1: 10,4 (note: decimal values with comma) 
2: 9 

模式Measures: X cm x Y cm.總是相同的。我試圖:'@ ^(?:措施:)?([^。] +)@'但我不能改進它來獲得第一個和第二個值。

非常感謝!

+0

我不明白的事情,你想要什麼來衡量?或從「bla bla bla」中提取? –

+2

這不是_do我的job_網站。 ;) – Leri

+0

@PLB顯然,其他人不止是有義務這樣做。我希望人們在問我更具體和疑難解答的問題時能有這種感覺。 – BLaZuRE

回答

1

使用此:

$pattern = '~Measures: ([0-9]+,*[0-9]*) cm x ([0-9]+,*[0-9]*)~'; 
preg_match_all($pattern, $txt, $matches); 
$widths = $matches[1]; 
$heights = $matches[2]; 
+0

這不符合它,因爲'9 cm'沒有逗號。現在你爲什麼不簡歷它? – HamZa

+0

逗號顯然是可選的,因爲你可以有9釐米。基於相同的值,小數也可以是可選的。 – BLaZuRE

+0

哎呀監督它。謝謝。已修復此問題。 @HamZa什麼意思是CV? – hek2mgl

0
if (preg_match('/Measures: (\S+) cm x (\S+) cm/', $subject, $regs)) { 
    $height = $regs[1]; 
    $width = $regs[2]; 
}