如何捕獲多個重復的組?我需要捕獲相同模式的多個組。假設我有以下字符串:HELLO,THERE,WORLD我寫了以下模式^(?:([A-Z]+),?)+$我想做的是捕獲每個單詞,這樣第1組是:“ HELLO”,第2組是“ THERE”,第3組是“ WORLD”我的正則表達式實際上只捕獲了最后一個,即“世界”。我正在這里測試我的正則表達式,我想將它與Swift一起使用(也許Swift中有一種方法可以某種方式獲取中間結果,以便我可以使用它們?)更新:我不想使用split。我現在只需要如何捕獲與模式匹配的所有組,而不僅僅是最后一個。
3 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
模式中只有一組,您只能在該組中獲得一個準確的結果。如果您的捕獲組被該模式重復(您+
在周圍的非捕獲組上使用了量詞),則只會存儲與其匹配的最后一個值。
您必須使用語言的正則表達式實現函數來查找模式的所有匹配項,然后必須刪除非捕獲組的錨點和量詞(并且也可以省略非捕獲組本身)。
或者,展開您的正則表達式,并讓該模式在要獲取結果的每個組中包含一個捕獲組:
^([A-Z]+),([A-Z]+),([A-Z]+)$

慕后森
TA貢獻1802條經驗 獲得超5個贊
我認為您需要這樣的東西。
b="HELLO,THERE,WORLD"re.findall('[\w]+',b)
在Python3中哪個會返回
['HELLO', 'THERE', 'WORLD']
- 3 回答
- 0 關注
- 949 瀏覽
添加回答
舉報
0/150
提交
取消