使用正则表达式匹配特定的d

2024-10-01 09:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中使用正则表达式,尝试解析下面的数据

数据thing1=

href="quote.ashx?t=JBL&amp;ty=c&amp;p=d&amp;b=1">4.47B</a>, <a 
t=JBL&amp;ty=c&amp;p=d&amp;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&amp;ty=c&amp;p=d&amp;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分。数据中是否有匹配的模式会产生这个结果

感谢您的帮助


Tags: 数据stylelinkclasscolorquotepatternamp
1条回答
网友
1楼 · 发布于 2024-10-01 09:19:42

HTML和regex不是好朋友,我强烈建议您改用HTML解析器

如果您坚持使用regex,那么在选择相关模式时应该更加具体。由于要提取的数字没有什么特别之处(它们似乎都有相同的模式-前后),因此可以尝试以下操作:

specific_text(\d+(?:\.\d+))

在您的示例中,specific_text可以是<span style=\"color.*?>(这里您将得到两个结果,第一个是您要查找的结果)

相关问题 更多 >