我有一个人名列表(字符串元素),其中一些人的名字中间有一个反斜杠'\'损坏了。
我想将它们过滤到外面,但是发现了难以解释的问题...
为了查找\
反斜杠,我使用了.find
方法或in
,它们似乎都一样工作。
似乎唯一有效的参数是"\\"
,因为"\"
或r'\'
都将导致错误(转义最后的引号-> SyntaxError: EOL while scanning string literal
)
因此,这是搜索代码:
names = ["robert", "rob\xadt", "egi\xadio"]
for name in names:
print(name.find('\\'))
这将返回-1,-1,-1(没有找到)
我无法更改包含这些名称的输入字符串,但是,出于这个问题,如果我手动采用这些名称之一并在前面添加r
raw,则该代码可以像下面的最后一个元素:
names = ["egi\xadio", r"egi\xadio"]
for name in names:
print(name.find('\\'))
这将返回-1,3(找到了东西!)
我尝试系统地添加原始符号r
,但没有成功,如下所示:
name = 'rob\xadt'
name = fr'{name}'
name.find('\\')
最后,下面两个“相似”代码都找不到\
,但我想知道第一个为什么会出错:
name = "rob\xar"
name.find('\\')
SyntaxError: ((unicode错误)'unicodeescape'编解码器无法解码位置3-5中的字节:截断的\ xXX转义] >>
name = "rob\xad"
name.find('\\')
确定
任何见解?预先感谢!
我有一个人名列表(字符串元素),其中一些人的名字中间有一个反斜杠'\'损坏了。我想将它们过滤到外面,但是是...
name = r"rob\xar"
name.find('\\')