ValueError('无法使用已编译的模式处理flags参数')

时间:2014-08-04 21:39:53

标签: python regex scrapy

我在Windows Vista 64位上使用Python.org版本2.7 64位。我正在使用带有Scrapy的正则表达式来解析下一页中名为“Datastore.prime”的第一个Javascript项中包含的数据:

Link here 我正在使用的正则表达式是:

regex = re.compile('DataStore\.prime\(\'standings\', { stageId: \d+ }.*')
        match2 = re.findall(regex, response.body, re.S)
        match3 = str(match2)
        match3 = match3.replace('<a class="w h"', '').replace('<a class="w a"', '').replace('<a class="d h"', '') \
                 .replace('<a class="d a"', '').replace('<a class="l h"', '').replace('<a class="l a"', '') \
                 .replace('title=', '')
        print match3

然而,这会在这篇文章的标题中引发错误:

     raise ValueError('Cannot process flags argument with a compiled pattern')
 exceptions.ValueError: Cannot process flags argument with a compiled pattern

任何人都可以看到问题所在吗?

由于

1 个答案:

答案 0 :(得分:4)

您需要将修改器放在re.compile模式中,也可以在此处使用原始字符串表示法。

regex = re.compile(r"DataStore\.prime\('standings', { stageId: \d+ }.*", re.S)
                                                                         ^^^^