Python 得到斜线和字母,而我只想要数字

Python 得到斜线和字母,而我只想要数字,python,scrapy,Python,Scrapy,我正在使用以下代码从电子商务网站恢复价格: response.css('div.price.regularPrice::text').extract() 但结果如下: '\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t', '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t', 我不想要斜线和字母,只想要数字5。如何获取此信息?使用正则表达式仅获取数字 \d+regex表达式应该起作用。首先,您可以使用strip()删除选项卡“\t”,然后

我正在使用以下代码从电子商务网站恢复价格:

response.css('div.price.regularPrice::text').extract() 
但结果如下:

'\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
 '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t',

我不想要斜线和字母,只想要数字5。如何获取此信息?

使用正则表达式仅获取数字


\d+
regex表达式应该起作用。

首先,您可以使用
strip()
删除选项卡
“\t”
,然后输入
“\n”

你得到了什么

['Dhs 5.00', '']
接下来,您可以使用
if
跳过空元素

data = [item for item in data if item]
你得到了什么

['Dhs 5.00']
['5']
如果项目始终具有相同的结构
Dns XXX.00

然后,您可以使用切片
[4:-3]
删除
“Dhs”
“.00”

你得到了什么

['Dhs 5.00']
['5']
因此,现在只需获取第一个元素
数据[0]
即可获取
5

如果需要,可以使用
int()
将字符串
“5”
转换为整数
5


你甚至可以把所有的都放在一行

data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
        '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']

data = [item.strip()[4:-3] for item in data if item.strip()]

result = int(data[0])
若您总是只需要列表中的第一个元素,那个么您可以编写它

data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
        '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']

result = int( data[0].strip()[4:-3] )

使用按钮
{}
设置代码和结果的格式。可以使用
strip()
删除选项卡并输入,以后可以使用切片
data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
        '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']

result = int( data[0].strip()[4:-3] )