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

extract value with regular expression or parsing

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

我不太熟悉正则表达式,所以我不知道如何解决它。

字符串示例:

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

它将始终以:

开头
location=cons_tab"> 

并以:

结尾
</a></div>

在正则表达式或解析中是否有解决这个问题的好方法?

使用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']

尝试使用:

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 = ""