Разобрать строку до заданной длины (без вырезания слов) - PullRequest
2 голосов
/ 25 июня 2009

У меня есть длинная строка, которую мне нужно проанализировать в массив строк, длина которых не превышает 40 символов. Самое сложное в этом для меня - убедиться, что регулярное выражение находит последний пробел перед 40 символами, чтобы сделать чистый разрыв между строками, поскольку я не хочу, чтобы слова обрезались.

Ответы [ 2 ]

9 голосов
/ 25 июня 2009

Это регулярное выражение должно выполнять работу:

".{1,40}( |$)"

(Кавычки для строкового литерала.)

Это просто говорит парсеру регулярных выражений выполнять жадное сопоставление любого символа от 1 до 40 раз (т. Е. Как можно больше), прежде чем он найдет один пробел (или конец строки).

0 голосов
/ 25 июня 2009

Правая подрезка подстрок, как вы идете:

(?<sub>.{1,40})(?:\s+|$)|(?<sub>.{40})

Первая альтернатива пытается сделать чистый перерыв, но вторая - это запасной вариант для слепой рубки в случае необходимости. После этого подстроки доступны в m.Groups["sub"].Captures.

...