Skip to main content
 首页 » 编程设计

python之简单的正则表达式,可选择的开始,可选择的结束

2025年05月04日22telwanggs

我有一整天都在努力解决的小问题。我认为这很简单,但我想不出答案。我使用用 Python 编写的 scrapy。我需要从一些 div 内容中解析生产者名称。

div的方案是:

<div id=info>... 
<html tag, can be p,strong,span,etc> 
     Producer(sometimes as Supplier): some code 
</end tag>... 
</div> 

我使用下一段代码:

l.add_xpath('producer_name', "//div[@class='info']", re=u'Producer:\s*(.*)\s?</p>') 

一切正常,直到我找到写有“供应商”而不是“生产者”或其他结束标记的页面。

所以我尝试了类似的方法:

l.add_xpath('producer_name', "//div[@class='info']", re=u'[Supplier|Producer]:\s*(.*)\s?[</p>|<br>|</span>|</strong>]') 

上面的代码不起作用。

请您参考如下方法:

我相信您需要在正则表达式中使用圆括号,而不是方括号,即:

l.add_xpath('producer_name', "//div[@class='info']", re=u'(Supplier|Producer):\s*(.*)\s?(</p>|<br>|</span>|</strong>)')