Как получить числовое значение, которое не заканчивается на %C#

Место общения программистов C#
Anonymous
Как получить числовое значение, которое не заканчивается на %

Сообщение Anonymous »

В счете-фактуре неизвестны различные произвольные тексты, ставки и суммы НДС, например

Код: Выделить всё

Arbitrary text 3.12 % Arbitrary text 4.23 Arbitrary text
или

Код: Выделить всё

Arbitrary text 5.67 Arbitrary text 8% Abitrary text
Как извлечь первую сумму, которая не заканчивается символом процента, с помощью C# 10 и .NET 10? Между суммой и текущим символом может быть или не быть пробел.
Для этих текстов результаты должны быть 4,23 и 5,67
Пробовал регулярное выражение -?[0-9]{1,3}(?:[_,.]?[0-9]{3})*[.,]?[0-9]{0,2}[^%], но оно возвращает 3.12
Regex101

Вернуться в «C#»