在替换字符串中的模式时,
我需要特别获取匹配命名组的整数/长整型值。
以下是一个示例及我尝试过的方法:
status = {1:'foo', 23:'bar'}
re.sub(
'<status>(?P<id>\d+)',
status.get(int(r'\g<id>')), # ValueError: invalid literal for int() with base 10: '\\g<id>'
# status.get(int(r'\g<id>'.decode())), # ValueError: invalid literal for int() with base 10: '\\g<id>'
# status.get('%d' % r'\g<id>'), # %d format: a number is required, not str
'Tom ran: from <status>1 to <status>23')
普通的类型转换可以很好地处理原始字符串int(r'22')
,但是在上面的情况下不起作用?