使用正则表达式或解析来提取值

时间:2015-01-06 19:16:31

标签: python regex

我试图在一个巨大的字符串中找到一个模式并获得我需要的价值。

我不熟悉正则表达式,因此我不确定如何解决它。

字符串示例:

href="https://www.johomojo.com/one?fref=pb&amp;hc_location=cons_tab">the value i want</a></div>

它始终以:

开头
location=cons_tab"> 

并以:

结束
</a></div>

在正则表达式或解析中有一个很好的解决方法吗?

2 个答案:

答案 0 :(得分:1)

使用BeautifulSoup

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('your_html')
>>> for x in soup.find_all('a'):
...     if x.get('href').endswith('location=cons_tab'):
...         print x.text
... 
the value i want

使用regex

>>> import re
>>> re.findall("<a.*location=cons_tab.*>(.*)</a>",'your_html')
['the value i want']

答案 1 :(得分:1)

尝试使用:

reobj = re.compile(r'<a\b[^>]href=".*?location=cons_tab.*?"[^>]*>(.*?)</a>', re.IGNORECASE | re.DOTALL)
match = reobj.search(text)
if match:
    result = match.group(1)
else:
    result = ""