我不敢相信治疗如此困难variable as a 原始字符串!我搜索并发现了类似的问题,但没有正确的答案。
我有一个带有存储域名的变量。 'domain\user',我只需要使用获取用户名re
。问题是Python给了我特殊字符组合的十六进制值,例如当我有\b
在字符串中。
我只需要从变量中获取文字字符串,不需要其他任何东西。
author = list[0] // list[0] contains 'domain\blah'
author = re.sub('.*\\\\(.+)$', r'\1', author)
我预计blah
,得到'domain\x08lah'
!
在开始时将字符串保存为原始字符串不是一个选项,因为我从其他正则表达式操作中获取字符串。
有任何想法吗?
EDIT:
我错误地假设变量中有一个斜杠。事实上,当从另一个操作获取变量时,反冲突已经被转义了。因此,在尝试创建测试场景时,我给自己带来了一个问题。
原始字符串文字仅用于create字符串值,通过避免常规字符串文字使用的(大多数)字符串转义码。
你的绳子started与\x08
特点;它从来不包含反斜杠和b
特点。如果您定义了包含在list[0]
使用字符串文字时,您忘记转义反斜杠。如果数据来自其他地方,您将看到原始的十六进制字节值 08:
>>> list_0 = 'domain\x08lah'
>>> list_0[6]
'\x08'
>>> len(list_0[6])
1
>>> ord(list_0[6])
8
如果该字节本来是两个字符,则可以通过字符串替换来修复数据:
>>> list_0.replace('\b', '\\b')
'domain\\blah'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)