我試圖把下面的字符串分爲兩組,如下所示:Python的正則表達式匹配
groups(1) = "Hello1 Hello2 Hello3 Hello4"
groups(2) = "Bye1 Bye2 Bye3 Bye4"
我試圖做到這一點使用下面的代碼。但是,這兩個組別都不包含所有需要的單詞。
import re
string = "Hello1 Hello2 Hello3 Hello4 Bye1 Bye2 Bye3 Bye4"
pattern = r'(Hello[0-9])+\w(Bye[0-9])+'
result = re.search(pattern, string)
groups = result.group
print("Group 1: {}\nGroup 2: {}".format(groups(1), groups(2)))
您不符合每個單詞之間的空格。在'[0-9]'後加'\ s +?' – Tezra
不要使用短語'groups()'它是一個單獨的組。你的問題引導到'我怎樣才能將所有特定的單詞排序到一個單一的數組中。例如''Hello1 Hello2 Bye1 Hello3 Bye2 Bye3 Bye4 Hello4「' – sln
看起來的答案是'(Hello [0-9] \ s)+',但是當您嘗試它時,該組將只包含Hello4。由於每次量化傳球都會清除組舊內容。更有意義的方法是'(你好[0-9](?:\ sHello [0-9])*)' – sln