脱字号和美元符号在scrapy中不起作用

时间:2019-07-12 17:27:26

标签: regex scrapy

我正在尝试使用正则表达式从选择器中提取数据。但我发现插入符号和美元符号不符合我的预期。

我正在使用。*测试^和$符号,如下所示。我认为以下两行应该返回相同的内容。

但是第一个只返回一个空列表。第二个返回了我期望的整个块。

response.xpath('//script[contains(.,"reports")]/text()').re('^.*$')

response.xpath('//script[contains(.,"reports")]/text()').re('.*')

1 个答案:

答案 0 :(得分:0)

.*不包括新行和换行符。

^匹配字符串的开头,如果设置了多行标志,则匹配行的开头。

$相同-设置了多行标记中的字符串结尾或行尾。

为获得更好的测试,请尝试使用^[\s\S]*$表达式。这将包括字符串开头和结尾之间的所有符号。