Извлечение числа из строки из 1 слова

В этой программе, которую я пытаюсь сделать, у меня есть выражение (такое как "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")

но он тоже не сработал, потому что передаваемое число не всегда состоит из двух цифр. Это может быть что-то вроде 5 или что-то вроде 13,6.

Какой код мне нужно написать, чтобы при передаче строки, такой как

I="I=2.4A"

или

I="A=3V"

, я мог извлечь из этой строки только число? (и делать над ним операции)? Нет пробелов или других постоянных символов, которые я могу разграничить.

5
задан Kyle 5 April 2012 в 23:11
поделиться