Python 3.x 如何使用正则表达式获取demangled函数名

Python 3.x 如何使用正则表达式获取demangled函数名,python-3.x,regex,regex-lookarounds,Python 3.x,Regex,Regex Lookarounds,我有需要的函数名列表,如\u Z6\u comp7StudentS\u \u z4sortis6vectori7studentsais0\u EE。我读了维基,发现它遵循某种定义的结构_Z是一个损坏的符号,后跟一个数字,然后是该长度的函数名 所以我想用正则表达式检索这个函数名。我只接近\uz(?:\d)(?[a-Z\ua-Z]){\1}。但是引用\1不起作用,因为它是字符串,对吗?是否有一个单一的正则表达式模式解决方案。您可以使用2个捕获组,并使用捕获组2的位置获取字符串的部分 import r

我有需要的函数名列表,如
\u Z6\u comp7StudentS\u
\u z4sortis6vectori7studentsais0\u EE
。我读了维基,发现它遵循某种定义的结构_Z是一个损坏的符号,后跟一个数字,然后是该长度的函数名


所以我想用正则表达式检索这个函数名。我只接近
\uz(?:\d)(?[a-Z\ua-Z]){\1}
。但是引用\1不起作用,因为它是字符串,对吗?是否有一个单一的正则表达式模式解决方案。

您可以使用2个捕获组,并使用捕获组2的位置获取字符串的部分

import re

pattern = r"_Z(\d+)([a-z_A-Z]+)"
s = "_Z4SortiSt6vectorI7StudentSaIS0_EE"
m = re.search(pattern, s)

if m:
    print(m.group(2)[0: int(m.group(1))])
输出

Sort

使用
\uz6\uuuuu comp7学生将返回
\uuuu comp

您所展示的示例的具体结果是什么?@mkrieger1“\uuuu comp”用于第一个示例,而“Sort”用于第二个示例