строка: abcd, вывести ab bc cd. можно ли это сделать в одной регулярке, без replace?
p.s условие будет куда сложнее, чем вывести последний символ предыдущего результата
Ответ
Сам по себе движок регексов в C# выдает непересекающиеся совпадения, но можно использовать positive lookahead:
var matches = Regex.Matches("abcd", "(.)(?=(.))")
.Cast
Точки заменить на соответствующие regex-ы для перекрываемых / неперекрываемых частей.
Стоит заметить, что простое решение с циклом и вызвов перегрузки Match с указанием начального индекса будет проще, читабельнее и эффективнее на длинных строчках.
Комментариев нет:
Отправить комментарий