У меня большая текстовая строка. Рассмотрим текстовую версию счета. В этом у меня есть несколько строк текста и чисел.
Одна из текстовых строк в этой большей строке находится ниже:
"Freight charge - 139 KG @ USD 0.70/KG Zero Rated 97.30\n"
PLS прокрутите вышеупомянутую строку вправо. В нем больше элементов, чем кажется на первый взгляд.
Я хочу извлечь из него 97.30. Вопрос в том нет. цифр слева и справа от "." может быть любой ди git.
Итак, я попробовал это,
freight_charge = re.search(r"Freight charge.*Zero Rated\s*(.*)",s).group(1)
, и это работает, и я получаю 97,30
Я хочу избегать использования промежуточного значения "с нулевым рейтингом", так как я не уверен, если это останется неизменным для одной и той же строки, поэтому я попробовал это:
freight_charge = re.search(r"Freight charge.*([\d]*\.[\d]*)",output)
print(freight_charge.group())
print(freight_charge.group(1))
Freight charge - 139 KG @ USD 0.70/KG Zero Rated 97.30
.30
Это только извлекает 0,30. Это показывает, что шаблон может получить всю строку, но подгруппа извлекает только числа после десятичной дроби.
Не уверен, почему 97 до этого не извлекается, когда я поставил [\ d] * перед точкой в подвыражении группы