在Python中使用正则表达式,尝试解析下面的数据。
数据 thing1 =
href="quote.ashx?t=JBL&ty=c&p=d&b=1">4.47B</a>, <a
t=JBL&ty=c&p=d&b=1">18.35</a>, <a class="screener-link"
style="color:#008800;">24.15</span></a>, <a class="screener-link"
style="color:#008800;">11.96%</span></a>, <a class="screener-link"
href="quote.ashx?t=JBL&ty=c&p=d&b=1">16,932,307</a>
正则表达式
pattern = "\b\d+(?:\.\d+)"
match = re.findall(pattern,thing1)
print(match)
该表达式匹配所有十进制数Here!
我得到的结果是预期的......
['4.47', '18.35', '24.15', '11.96']
但我只想要24.15。数据中是否有任何匹配的格式会产生这种结果?
感谢任何帮助。
答案 0 :(得分:2)
HTML和正则表达式不是好朋友,我强烈建议您改用HTML解析器。
如果您坚持使用正则表达式,则应该更具体地选择相关模式。由于你想要提取的数字没有什么特别之处(它们看起来都有相同的模式 - 前后),你可以尝试类似的东西:
specific_text(\d+(?:\.\d+))
在您的示例中specific_text
可以是<span style=\"color.*?>
(此处您将获得两个结果,第一个是您正在寻找的结果)。