简单的正则表达式问题

时间:2013-03-08 22:19:08

标签: python regex python-2.7

我有两个几乎相同的表达方式,我得到一个好的,另一个错误的输出。

data/holidays/photos-2012-2013/word-another-more-more-5443/"><span class="bold">word another</span> - word</a>    

regex = 'data/holidays/photos-2012-2013/.+?(\d{4})/"><span class="bold">(.+?)</span>(.+?)</a>'

word-another-more-moreword anotherword,这些都在上述变化中。 以上打印正确,这样的元组列表: ('6642', 'word another', ' - word')

data/holidays/photos-2012-2013/word-another-more-more-5443/">word- another - <span class="bold">word another</span></a>

regex1 = 'data/holidays/photos-2012-2013/.+?(\d{4})/">(.+?)<span class="bold">(.+?)</span></a>'

以上打印出一些垃圾代码,尽管使用的语法是完美的。输出也是一个包含元组的列表,但是有很多不需要的代码。

你能看出第二个正则表达式有什么问题吗?

1 个答案:

答案 0 :(得分:1)

适合我:

>>> import re
>>> text = 'data/holidays/photos-2012-2013/word-another-more-more-5443/">word- another - <span class="bold">word another</span></a>'
>>> re.findall(r'data/holidays/photos-2012-2013/.+?(\d{4})/">(.+?)<span class="bold">(.+?)</span></a>', text)
[('5443', 'word- another - ', 'word another')]

注意:不要使用正则表达式解析HTML。 BeautifulSoup因此而存在。