Regex при поиске по всему списку

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Здравствуйте!

Подскажите, пожалуйста, что делаю не так, мне нужно пробежаться по всем строкам списка, вытащить из каждой строки регуляркой значение баланса, и получить общий баланс всех строк, в строке он записан так BALANCE: 55.70, регулярка для него такая (?<=BALANCE:\ ).*(?=\ ]), в тестере все находит без проблем, а в цикле со списком не хочет.

Код:
var AccountsBalance = project.Lists["AccountsBalance"];

string regex_balance = @"(?<=BALANCE:\ ).*(?=\ ])";

decimal totalBalance = 0;
decimal nowBalance = 0;

lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < AccountsBalance.Count; i++)
    {
        string str = AccountsBalance[i];
        string str_balance = System.Text.RegularExpressions.Regex.Match(str, regex_balance).ToString();
        str_balance = str_balance.Replace(".", ","); 
        nowBalance = System.Convert.ToDecimal(str_balance);
        totalBalance = totalBalance + nowBalance;
   
    }
    return totalBalance;
}
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
в строке он записан так BALANCE: 55.70,
может так тогда??? (?<=BALANCE:\s).*?(?=,)
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
в строке он записан так BALANCE: 55.70,
может так тогда??? (?<=BALANCE:\s).*?(?=,)
Не, с регуляркой все впорядке, там такая BALANCE: 55.70 ] структура, тут именно какой-то косяк в самом коде, в лог выдаётся сообщение "Входная строка имела неверный формат."
Кстати, может это из-за того, что в некоторых строках баланс отсутствует?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
string str_balance = System.Text.RegularExpressions.Regex.Match(str, regex_balance).ToString();

а если еще трим делать к строке?
.ToString().Trim();
 
  • Спасибо
Реакции: bhairava7

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)