python - 如何从字符串中提取整个小数?
问题描述
我正在解析一封电子邮件并尝试从电子邮件中获取数值。我的算法将电子邮件拆分为一个由空格分隔的数组,然后从该数组中提取值。问题是 html 被拾取,所以数组中的一个元素看起来像这样
pre-wrap;">32.35</pre>
</td>
</tr>
我只想提取数字并尝试将其过滤掉,但它忽略了小数
这是方法
extractedValue = ''.join(filter(lambda i: i.isdigit(), firstString))
这将返回 3235 并忽略小数。
解决这个问题的方法是什么?
解决方案
如评论中所述,这是使用正则表达式的方法
re.search(r'(\d+\.\d+)', firstString).group(1)
事实上,我们可以使用它.group()
来获取整个匹配,从而为您节省一些击键。
foo = re.search("foo", sometring).group()
bar = re.search("bar", something).group()
如果搜索不匹配,则返回 None,因此这将扩展到None.group()
which raises AttributeError
,因此您可以捕获AttributeError
任何不匹配
try:
foo = re.search("foo", sometring).group()
bar = re.search("bar", something).group()
except AttributeError:
pass
# something went wrong
所以你可以达到同样的结果re.search(r'\d+\.\d+', firstString).group()
我希望这会有所帮助,问候
推荐阅读
- python - Python 字典中键的值未更新
- r - 当我使用 as.POSIXct 命令时,该列变为空
- git - ExtJS 6 将 workspace.json 添加到 gitignore
- mercurial - 如何判断存储库是否有来自 shell 脚本的传出更改并安全地检测到真正的错误?
- git - AWS CodeCommit - 致命:未找到存储库“https://git-codecommit.us-east-1..”
- php - CURL:主机名和端口后的路径
- sql - 使用 MS Access 或 SQL Server 的考勤日志
- javascript - 在 xampp 中遇到未捕获的异常
- bash - 在base64编码时转义换行符
- python - BOOTSTRAP 登录模板不适用于 FORM