回到我已经发布的HTML内容。试着学点正则表达式,即使我知道还有其他方法。我不是哑巴,就像挑战。。。在
我的表达是:
publisher.php\?c=.*?\">(.*?)</a>(?:.*?)<br\s\\>(?:[\s\r\n]*?)Date:\s<time\sdatetime="(.*?)\">(?:.*?)(?:[\s\r\n]*?)Pages:\s*?(\d*?)<br\s\\>
匹配:
^{pr2}$如果我在Expresso中测试它,效果很好,但是当我在Python中运行它时,我的结果是group1立即没有结果。。。在
有什么线索吗?在
谢谢
米
你如何在Python中运行它?你是作为一个原始字符串来转义吗?你添加了多行标志了吗?在
您混合使用双引号、单引号和反斜杠的方式可能会导致问题。例如,这个位看起来很奇怪:
但是对于我来说,在Linuxx86上使用Python2.6.6似乎是可行的。在
^{pr2}$regexp的所有实现都有细微差别。它在expresso中工作并不意味着它可以在Python中工作。这也可能是一个有不同标志默认值的问题,比如空白等。
不要使用regexp来匹配HTML或XML,除非情况很简单。使用为HTML/XML设计的库,如lxml或{a2}。
我只是想弄清楚你头痛的原因。见2。
当您这样做时:
\\>
您将创建一个反斜杠和一个大于号的括号。regexp将其解释为文本括号。您需要三个反斜杠:\\\>
,或者更好:使用原始字符串,即使用r''而不是''。使用BeautifulSoup。真正地。
相关问题 更多 >
编程相关推荐