Python 当\d什么也不返回时,如何告诉re返回所有数字?

Python 当\d什么也不返回时,如何告诉re返回所有数字?,python,scrapy,python-3.6,Python,Scrapy,Python 3.6,这个代码在我的文件里放了mothing 但是这个代码: def parse(self, response): for line in response.css('small'): yield { 'seats': line.css('*').get().re('\d') } (相同,但无re) 在文件中放入许多内容,包括许多数字。那么为什么第一个代码不给我数字呢?在第一个示例中,您错误地组合了get()和re()方法。是一种选择器

这个代码在我的文件里放了mothing

但是这个代码:

def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').get().re('\d')
        }
(相同,但无re)


在文件中放入许多内容,包括许多数字。那么为什么第一个代码不给我数字呢?

在第一个示例中,您错误地组合了
get()
re()
方法。是一种
选择器
的方法,同时从选择器返回文本数据。因此,您需要将
re()
应用于选择器本身:

def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').get()
        }

另外,请注意,使用原始字符串
r'\d+'
作为正则表达式模式,并使用
\d+
作为实际模式来返回所有数字。

这看起来不像标准Python函数。你用的是什么进口货?你的问题,让它成为我们可以帮助你。。。您正在使用的库是否指定re中的反斜杠不需要字符串转义?这是Python字符串处理的一部分,因此很难绕过。我使用的是scrapy,我设置了标记,很抱歉没有说,如果您正在查找
re
的工作方式,
\d
将只匹配行中的数字,而不匹配其他内容。我不完全理解您在这里的需求,但您应该研究的可能是模式匹配。也许您需要使用
.re(r'(\d+)
'\d'
应该是
r'\d'
'\\d'
def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').re(r'\d+')
        }