我在尝试分析以下列形式的数据时遇到了一些问题:
"0\r\n\359"
数字可以是任何整数(那些是我试图收集的数字)。
x = "0\r\n\359"
x = x.split("\\")
print(x)
打印结果为['0\r\n\x1d9']
这是不受欢迎的。
如何让我的代码只打印数字,最好用某些东西分隔?
答案 0 :(得分:3)
你的字符串中没有任何反斜杠。字符串文字中的反斜杠是转义符。 ' \ r'是一个回车,' \ n'是一个换行符,' \ 35; (十六进制1d)是一个名为"组分隔符"的控制字符。你可以试一下原始字符串:
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$( this ).addClass( "done" );
});
答案 1 :(得分:1)
尝试类似:
print ' something '.join(r"0\r\n\359".split('\\r\\n\\'))
答案 2 :(得分:1)
不确定这是不是你想要的?:
\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
是另一个特殊/控制字符,除非你将字符串指定为原始字符串,否则无法检索其数字。但这带来了你是否想要它的问题?。
答案 3 :(得分:1)
您可能希望研究正则表达式来解析字符串。如果要在字符串中查找所有整数表达式,可以使用re.findall
和模式r'\d+'
来提取所有连续数字组。以下是使用您提供的字符串可以预期的示例。
>>> import re
>>> x = '0\r\n359'
>>> re.findall(r'\d+', x)
['0', '359']
>>>