Python 如何提取括号内的所有内容

Python 如何提取括号内的所有内容,python,regex,Python,Regex,如何提取括号内的所有内容 string = "int funt (char* dst, char* src, int length); void bar (int a, short b, unsigned long c) "; import re pat = re.compile(r'([^(]+)\s*\(([^)]+)\)\s*(?:,\s*|$)') lst = [t for t in pat.findall(string)] print lst 未给出正确的结果。(?您可以使用re

如何提取括号内的所有内容

string = "int funt (char* dst, char* src, int length); void bar (int a, short b, unsigned long c) ";

import re
pat = re.compile(r'([^(]+)\s*\(([^)]+)\)\s*(?:,\s*|$)')

lst = [t for t in pat.findall(string)]
print lst

未给出正确的结果。

(?您可以使用
re.findall
查找括号内的内容:

(?<=\()[^)]+(?=\))
>>> string = "int funt (char* dst, char* src, int length); void bar (int a, short b, unsigned long c) "
>>> l= re.findall(r'\((.*?)\)',string)
['char* dst, char* src, int length', 'int a, short b, unsigned long c']
然后,如果需要这些单词,可以
拆分它们:

>>> [i.split() for i in l]
[['char*', 'dst,', 'char*', 'src,', 'int', 'length'], ['int', 'a,', 'short', 'b,', 'unsigned', 'long', 'c']]

我该如何用python编写它?@UrsaMajor我已经给出了代码。名称“l”不是defined@UrsaMajor哦…我错过了,你需要将
re.findall
的结果分配给l,我编辑答案非常好。谢谢。@UrsaMajor不客气!
>>> [i.split() for i in l]
[['char*', 'dst,', 'char*', 'src,', 'int', 'length'], ['int', 'a,', 'short', 'b,', 'unsigned', 'long', 'c']]