python - 从 1-word 字符串中提取数字

标签 python python-3.x

在我尝试制作的这个程序中,我有一个表达式(例如“I=23mm”或“H=4V”),我试图从中提取 23(或 4),所以我可以把它变成一个整数。

我一直遇到的问题是,因为我试图从中取出数字的表达式是 1 个单词,所以我不能使用 split() 或任何东西。

我看到但行不通的一个例子是 -

I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]

这行不通,因为它只需要用空格分隔的数字。如果 int078vert 这个词中有一个数字,它就不会提取它。另外,我的没有空格来分隔。

我试过一个看起来像这样的,

re.findall("\d+.\d+", "Amps= 1.4 I")

但它也不起作用,因为传递的数字并不总是 2 位数字。它可能是 5 或 13.6 之类的东西。

如果我传递一个字符串,我需要写什么代码,比如

I="I=2.4A"

I="A=3V"

这样我就可以只从这个字符串中提取数字? (并对其进行操作)?没有我可以分隔的空格或其他常量字符。

最佳答案

>>> import re
>>> I = "I=2.7A"
>>> s = re.search(r"\d+(\.\d+)?", I)
>>> s.group(0)
'2.7'
>>> I = "A=3V"
>>> s = re.search(r"\d+(\.\d+)?", I)
>>> s.group(0)
'3'
>>> I = "I=2.723A"
>>> s = re.search(r"\d+(\.\d+)?", I)
>>> s.group(0)
'2.723'

关于python - 从 1-word 字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10037279/

相关文章:

python - Python 中的不可变对象(immutable对象)可能具有弱引用

python - 替换列表中的项目,python

python - 测试 Django 对 Stripe Webhook 的响应

python - 在python中使用PDFMiner从PDF文件中提取文本?

python - 我在范围内时收到 IndexError

python - 用于交易策略开发的脚本语言

python - 如何使用 `fixture` 和 `parametrize` 为 pytest 测试设置环境变量

Python 列表元素交换未按预期工作

linux - 按日期将 Linux 终端输出记录到文件?

python - 如何在python中运行 "for"循环以获得有限结果