2016-02-15 56 views
2

我有這種類型的字符串:正則表達式來獲得 「any_characters((號碼,號碼))」

some text that can contains anything ((12.1,5.2))another text that can contains anything ((1,8.7)) and so on... 

事實上,我不知道怎麼去:

[0 ]可以包含任何東西((12.1,5.2))

[1],可以包含任何東西((1,8.7))

其他文本......

一些文本

我試過:preg_match_all('#(.*\(\([0-9\.]+,[0-9\.]+\)\).*?)#',$lines,$match);但肯定它不起作用。 我也嘗試添加「U」選項和? *和+後,但沒有更多的結果。

感謝

回答

3

這種變化試試你有什麼:

preg_match_all('#.*?\(\([0-9.]+,[0-9.]+\)\)#',$lines,$match); 

增加的問號附近開始很重要,否則點會也消耗開頭括號。我也刪除了右括號後的部分,假設你的下一行從那裏開始。您也可以不需要整體捕捉組。

以下

if ($match !== false) { 
     var_export ($match[0]); 
} 

將輸出:

array (
    0 => 'some text that can contains anything ((12.1,5.2))', 
    1 => 'another text that can contains anything ((1,8.7))', 
) 
+0

右內超過2號這將匹配!感謝您指出了這一點。 – trincot

+0

我也有另一個問題,因爲我的文本是多行的,我需要添加's'選項。謝謝 – Entretoize

+0

我明白了。很高興你能解決這個問題。 – trincot