2024-03-28 13:17:27 发布
网友
假设我有一根绳子 s=“如果我们得到0x12到0x34的正确答案,我们就是‘团队’的‘冠军’”
我想要一份名单['冠军','团队','0x12','0x34']
以下是我尝试过的:
k = re.findall(r'(\'\w+\')|(0x\w+)',s)
但我得到了这个
如何修复代码?在
这是因为(...)是一个capturing group,它使您的match返回一个元组,其中包含匹配(...)之间的子regex的字符串。在
(...)
您可以使用(?:...)代替,使您的组不被捕获。或者在这种情况下,您可以完全删除括号。在
(?:...)
re.findall(r"'[^']+'|0x\w+",s) # ["'Champion'", "'The Team'", '0x12', '0x34']
请注意,如果您希望有固定数量的匹配,那么实际上可以使用capturing group来解决您的问题。在
这是因为
(...)
是一个capturing group,它使您的match返回一个元组,其中包含匹配(...)
之间的子regex的字符串。在您可以使用
(?:...)
代替,使您的组不被捕获。或者在这种情况下,您可以完全删除括号。在请注意,如果您希望有固定数量的匹配,那么实际上可以使用capturing group来解决您的问题。在
^{pr2}$相关问题 更多 >
编程相关推荐