使用正则表达式或解析提取值
extract value with regular expression or parsing
我正试图在一个巨大的字符串中找到一个模式并获得我需要的值。
我不太熟悉正则表达式,所以我不知道如何解决它。
字符串示例:
href="https://www.johomojo.com/one?fref=pb&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 = ""
我正试图在一个巨大的字符串中找到一个模式并获得我需要的值。
我不太熟悉正则表达式,所以我不知道如何解决它。
字符串示例:
href="https://www.johomojo.com/one?fref=pb&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 = ""