我有一个需求函数名称列表,如_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