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

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

Сообщение Anonymous »

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

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

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

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

Arbitrary text 5.67 Arbitrary text 8% Abitrary text
Как извлечь первую сумму, которая не заканчивается символом процента? Между суммой и настоящим символом может быть или не быть пробел.
Для этих текстов результаты должны быть 4,23 и 5,67
Проверено регулярное выражение

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

-?[0-9]{1,3}(?:[_,.]?[0-9]{3})*[.,]?[0-9]{0,2}[^%]
но он возвращает 3,12
Как получить первую сумму, которая не заканчивается на %?
Тестовая площадка:
https://regex101.com/r/1b67LR/1
Прямая ссылка:
https://regex101.com/?regex=-%3F%5B0-9% ... 9%5D%7B0%2 C2%7D%5B%5E%25%5D&testString=Произвольный+текст+3.12%25+Произвольный+текст+4.23+Произвольный+текст&flags=s&flavor=dotnet&delimiter=%22
Использование C# 10 и .NET 10
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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