@jmnas, мне понравился ваш ответ, но он не нашел поплавков. Я работаю над скриптом для анализа кода, идущего на станцию с ЧПУ, и мне нужно найти как размеры X, так и Y, которые могут быть целыми числами или плавать, поэтому я адаптировал ваш код к следующему. Это находит int, float с положительными и отрицательными vals. Все еще не находит шестнадцатеричные форматированные значения, но вы можете добавить «x» и «A» через «F» в кортеж num_char
, и я думаю, что он будет анализировать такие вещи, как «0x23AC».
s = 'hello X42 I\'m a Y-32.35 string Z30'
xy = ("X", "Y")
num_char = (".", "+", "-")
l = []
tokens = s.split()
for token in tokens:
if token.startswith(xy):
num = ""
for char in token:
# print(char)
if char.isdigit() or (char in num_char):
num = num + char
try:
l.append(float(num))
except ValueError:
pass
print(l)