2012-01-07 19 views
0

我是一個正則表達式的新手,但需要將它用於任務,並非常感謝有人能幫助我。捕獲括號的可選組 - 封閉文本

我有一個字符串,可能在最後包含一個括號括起來的文本。

Something like these: 
product1 
product2 (enclosed text) 
another product (some more enclosed text) 
one more product 
... 

我需要將字符串分成兩組。 如果沒有括號,第一個是括號前的文本或整個文本。

第二組是括號內的文字,它應該是可選的。

我試過(.*)(\(.*\))?但第一組捕獲包括括號在內的整個字符串。

+0

會(。)?有沒有流浪的括號,或者你保證打開一個,然後是一個左括號? – Nate 2012-01-07 01:56:28

回答

3

如果您的語言支持的話:

(.*?)(\(.*\))? 

*?使其成爲一個「不情願」的比賽(而不是「貪婪」一節)。

否則,如果你能保證絕不會有任何雜散括號:

([^\(\)]*)(\(.*\))? 
+0

謝謝,你救了我的一天。 :) – RuiFortes 2012-01-08 10:18:48

1

<)(* /)就是答案,這是很簡單的