在我尝试制作的这个程序中,我有一个表达式(例如“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/