Привет всем, не могу сделать разбиение строки на подстроки с помощью регулярных выражений, как это требуется. Нужно разбить строку на подстроки длины 2 или меньше, начиная с конца строки и занести подстроки в List. Есть код:
value = (from Match splitPart in Regex.Matches(number, @".{1," + 2 + "}") select Convert.ToInt32(splitPart.Value)).ToList();
но он делит с начала строки, например строку 12345 он разобьет как 12 34 5, а мне необходимо 1 23 45, заранее спасибо.
Проблема решена) Сделал так:
value = (from Match splitPart in Regex.Matches(unsig, @".{1," + 2 + "}", RegexOptions.RightToLeft) select Convert.ToInt32(splitPart.Value)).ToList();
если кому будет интересно.
А почему бы это не сделать через банальный цикл вместо регулярки?
List<int> lst = new List<int>();
for (int i = str.Length-1; i>0; i-=2)
{
string tmp;
if (i!=1)
{
tmp = str.Substring(i-2,2);
}
else
{
tmp = str.Substring(0,1);
}
var tmpInt = Convert.ToInt32(tmp);
lst.Add(tmpInt);
}
хоть кода и больше, скорее всего это решение будет читабельнее и быстрее. Ведь это простой перебор, а не серия регекс сравнений.
(код не проверял)
Можно сначала проверить длину и если длина нечетное число, спереди добавить 0:
if (number.Length % 2 == 1) number = "0" + number;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости