Регулярное выражение нахождения суммы

126
10 декабря 2020, 11:20

Eсть текст:

1)   I was 2 300 530 belarusian roubles and 2 351 dollars 12/9/2010.  
2)   After shopping 15.09.10  
3)   I was left with 1 700253 blr and 2 000$.  
4)   After shopping 16.09.10  
5)  I was left with 1 7 00  2 500 blr.  
6)   232   500blr and 10   blr.

Eсть регулярное выражение:

const string sumPattern = @"(\d+)\s*(\d*)\s*(\d*)(?=belarusian roubles|blr)|\d*\s*\d*\s*\d*\s*\d*s*\d*(?=belarusian roubles|blr)";

В строке 5 находит только 00 2 500. Как исправить ошибку?

Answer 1

вот мой первый вариант (кидал до этого в коменты):
regex101.com/r/Myf13C/1
сейчас посмотрел у Qwertiy, теперь почти согласен с ним
RegEx который он предложил (сокращенно): \d[\d|\s]+(?=b)
очень хорошо работает. жаль что убрать пробел в конце придется программно
(в 6-ой строке нет пробела - это очень мешает)

Answer 2

Думаю, так будет гораздо проще:

\d(\d|\s)*(?=belarusian\s+roubles?|blr)

или вот так:

\d(\d|\s)*?(?=\s*(belarusian\s+roubles?|blr))
READ ALSO
Движение картинки к координатам мышки в WinForms C#

Движение картинки к координатам мышки в WinForms C#

Мне нужно сделать так,что бы картинка нарисованная в picturebox разворачивалась в сторону курсора и двигалась к нему,но я не представляю с помощью...

121
Как поставить mysql на Debian 10 (testing) не прибегая к даунгрейду и VM?

Как поставить mysql на Debian 10 (testing) не прибегая к даунгрейду и VM?

Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Некоторые пакеты не могут быть установленыВозможно,...

120
Обновление полей двух таблиц

Обновление полей двух таблиц

Как можно, и можно ли вообще, осуществить обновление полей двух таблиц?

111