2014-08-28 122 views
1

我有以下正則表達式應該匹配所有圍繞它們的括號(包括括號)的單詞,但它只匹配一個案例。我究竟做錯了什麼?正則表達式 - 匹配括號中的所有單詞

"(e), (f), and (g)".match(/\(\w+\)/) 
=> #<MatchData "(e)"> 

輸出應該是:

=> #<MatchData "(e)", 1: "(f)", 2: "(g)"> 
+1

不是Ruby編碼器,而是你嘗試['scan()'](http://stackoverflow.com/a/80387/1438393)而不是? – 2014-08-28 15:30:08

+0

請注意,如果有非機會可能需要使用表達式['/\([^)]+\/'](http://www.rubular.com/r/SkpBW6ghDC) \ w'字符。 – Sam 2014-08-28 15:33:00

+0

第一場比賽後紅寶石'比賽'停止嗎?是否需要全球標誌'/ g'? – sln 2014-08-28 15:35:38

回答

6

使用scan()代替。它返回一個包含所有匹配項的數組。 match()只會返回第一個匹配項。

"(e), (f), and (g)".scan(/\(\w+\)/) 
+0

正是我在找的東西。完全忘了'scan()'。 – 2014-08-28 15:40:58

相關問題