powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Regex "глотает" строки при разбиении шаблоном типа ".{10}" ?
3 сообщений из 3, страница 1 из 1
Почему Regex "глотает" строки при разбиении шаблоном типа ".{10}" ?
    #38211864
Pochemuchkin2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел разбить строку на равные части, и вдруг наткнулся на такое: при использовании

string[] lines = Regex.Split("looooooooooooooongggggggggggggggggggggggggggg", @".{10}");

(то есть мы делим длинную строку на строки по 10 и менее символов)
Получаем список из 5 пустых строк, кроме последней шестой, которая короче 10 - см. картинку.
Причем если бы последняя строка была длиной тоже 10 символов, она бы тоже исчезла.

В чём тут дело?
...
Рейтинг: 0 / 0
Почему Regex "глотает" строки при разбиении шаблоном типа ".{10}" ?
    #38211865
Pochemuchkin2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, на скриншоте не шестистроковая, а пятистроковая версия.
...
Рейтинг: 0 / 0
Почему Regex "глотает" строки при разбиении шаблоном типа ".{10}" ?
    #38211886
Pochemuchkin2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, я понял в чём ошибка - сплит же интерпретирует паттерн как разделитель .
Решил так:
string[] lines = Regex.Split("aaaaaaaaaabbbbbbbbbbccccccccccdddddddddde", @"(.{10})").Where( x => !string.IsNullOrEmpty(x)).ToArray();
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Regex "глотает" строки при разбиении шаблоном типа ".{10}" ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]