2014-05-05 87 views
0

我有正則表達式的問題。我有這樣的字符串:正則表達式匹配帶括號的詞嗎?

test(r), testtest(r,r), example, example2, exmp (r,5) 

我想查找文本和括號之間沒有空格的所有單詞。從上面的字符串,我想:

test(r), testtest(r,r) 

我創造了這個正則表達式,但它與內容吸引裏面只有括號:

/\(([^\)]+)\)/g 

感謝所有的答案。

編輯: 我在Ruby工作,這個正則表達式完美地工作/\w+\(([^)]+)\)/g

如果我想用逗號和逗號之間的逗號分隔單詞,該怎麼辦?例如,我如何得到這個?

testtest(r,r) <-with comma 
test(r) <-without comma 
+2

你能在標籤的語言/應用程序,您正在使用此正則表達式?另外,你不需要在'[]'裏面轉義'('或')'。 – ajp15243

回答

4

可以在圖案前加上一個\w+

/\w+\(([^)]+)\)/g 

這將匹配的一個或多個「字」的字符,隨後一個(,隨後一個(包括字母,數字,和下劃線)或更多除)以外的任何字符,然後是)

如果你想知道希望能夠捕捉到該括號之前單獨出現的話,你可以把它放在一組這樣的:

/(\w+)\(([^)]+)\)/g 

在你的榜樣,這將給組1 :test和組2:r第一場比賽和第一組:testtest和組2:r,r第二場比賽。

+0

我認爲OP希望'\ w +'結果成爲捕獲內容的一部分。 – ajp15243

+0

謝謝。這是它;) – user2239655

+0

@ ajp15243它將被捕獲,它不會在同一組。儘管如此,我還是提供了更多信息,以便OP分別需要該單詞。 –

1

最近自己也有同樣的問題。這樣做解決了我的問題:

(\w+\([\w, ]+\)) 

希望它有幫助!

0

事情是這樣的:

/\w+\(\w([,]\w)?\)/g