如何使用正则表达式获得函数名



我有一个需求函数名称列表,如_Z6__comp7StudentS__Z4SortiSt6vectorI7StudentSaIS0_EE。我读了维基,发现它遵循某种明确的结构。_Z是符号后接一个数字,然后是该长度的函数名。

所以我想用正则表达式检索函数名。我只接近_Z(?:d)(?<function_name>[a-z_A-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

使用_Z6__comp7StudentS_将返回__comp

相关内容

  • 没有找到相关文章

最新更新