Python在“\\”后拆分时丢失数据

2024-09-24 10:15:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试分析以下形式的数据时遇到了一些问题:

"0\r\n\359"

其中的数字可以是任意整数(我正试图收集这些数字)。你知道吗

x = "0\r\n\359"
x = x.split("\\")
print(x)

打印结果是['0\r\n\x1d9'] 这是不需要的。你知道吗

我怎样才能让我的代码只打印数字,最好用一些东西隔开?你知道吗


Tags: 数据代码数字整数形式splitprint正试图
3条回答

不确定这是不是你想要的?地址:

\r\n是特殊字符,如回车符和换行符,因此除非将它们指定为原始字符串,否则无法在其反斜杠上拆分。你知道吗

>>> re.search(r'\d+$', r'0\r\n\359').group()
'359'
>>> re.search(r'\d+$', '0\r\n\359').group()
'9'
>>> re.split(r'\\', r'0\r\n\359')
['0', 'r', 'n', '359']
>>> re.split(r'\\', '0\r\n\359')
['0\r\n\x1d9']

请注意,将r添加到字符串中会产生什么不同,因为它被认为是一个行字符串,其中\没有转义。所以\35就像前面的回答中提到的一样,它是另一个特殊的/控制字符,除非您将字符串指定为原始字符串,否则无法检索它的数字。但这就带来了一个问题:你是否想要它?。你知道吗

你的字符串中没有任何反斜杠。字符串文字中的反斜杠是转义\r'是回车,'\n'是换行符,'\35'(十六进制1d)是称为“组分隔符”的控制字符。您可以尝试原始字符串:

x = r"0\r\n\359"

尝试以下操作:

print ' something '.join(r"0\r\n\359".split('\\r\\n\\'))

相关问题 更多 >