如何在Python中编写正则表达式以提取浮点数?
如何在Python中写一个正则表达式来提取浮点数。我想从 <td nowrap="nowrap">55.97</td>
中获取 55.97。所以我写了
newsecond_row_data = (re.search('(?<=>)\d+|\d+.\d+',second_row_data[a]))
newsecond_row_data.group(0)
print newsecond_row_data.group(0)
但是它只给了我 55,而不是 55.97。请帮帮我
谢谢
4 个回答
0
这段内容是关于某个技术问题的讨论,可能涉及到编程或软件开发的具体细节。为了让你更容易理解,我会用简单的语言来解释。
首先,大家在讨论一个特定的编程问题,可能是遇到了错误或者想要实现某个功能。通常,程序员会在这样的论坛上寻求帮助,分享他们的代码和遇到的困难。
在这个讨论中,可能会有一些人提供解决方案,或者给出建议,告诉提问者该如何修改代码,或者需要注意哪些地方。大家会互相交流,分享经验,帮助彼此解决问题。
总之,这段内容主要是关于程序员们如何在遇到问题时,通过讨论和交流来找到解决办法的过程。
newsecond_row_data = re.search('\d+\.?\d*', second_row_data[a])
print newsecond_row_data.group(0)
7
如果你想从HTML或XML中提取数据,可以看看有很多不同的解析工具。在这个特定的情况下,你可以很简单地提取出数字:
>>> from xml.etree import ElementTree
>>> element = ElementTree.fromstring('<td nowrap="nowrap">55.97</td>')
>>> element.text
'55.97'
>>>
0
newsecond_row_data = (re.search('(?<=>)\d+.\d+|\d+',second_row_data[a]))
newsecond_row_data.group(0)
你的模式之所以不管用,是因为它看到了'55',找到了匹配项后就停止继续搜索了。
另外,我建议不要使用正则表达式,而是用一个处理XML的库来从HTML标签中提取文本(可以参考Sudhir的回答)。