|  |      1ClericPy      2021-01-01 09:56:59 +08:00 import re string = '[123)(abc]' m = re.findall(r'[\[()](.*?)[)\]]', string) print(m) # ['123', 'abc'] 这样吗? | 
|  |      2ClericPy      2021-01-01 09:57:25 +08:00 上面发错, 被自动补全了括号 # -*- coding: utf-8 -*- import re string = '[123)(abc]' m = re.findall(r'[\[(](.*?)[)\]]', string) print(m) | 
|  |      3ClericPy      2021-01-01 09:58:23 +08:00 睡晕了... 上面这俩回复都不对... 会有误判 | 
|      4crclz      2021-01-01 10:00:50 +08:00 ('123', '') 表示 123 在第一个 group(括号)内被匹配。 ('', 'abc') 表示 abc 在第二个 group(括号)内被匹配。 | 
|      5crclz      2021-01-01 10:03:32 +08:00 import re def single(l): assert len(l) == 1 return l[0] s = '[123)(abc]' # m = re.findall() m = re.findall('\[(.*?)\)|\((.*?)]',s) m = [single([q for q in p if len(q)>0]) for p in m] print(m) | 
|  |      6ClericPy      2021-01-01 10:16:30 +08:00 # -*- coding: utf-8 -*- import re string = '[123)(abc]' m = re.findall(r'(?<=\[).*?(?=\))|(?<=\().*?(?=\])', string) print(m) # ['123', 'abc'] | 
|  |      8learningman      2021-01-01 15:15:51 +08:00 @ClericPy 在这种回复不支持 markdown 的网站发代码,可以用 pastebin |