2015-03-17 5 views
0

Я пытаюсь разбить строку на куски различных размеров, создавая «волну» слов, таких как:Regex разделить строку на куски размером verying

  the 
     cat sat 
    on the mat the 
    cat sat on the mat the 
    cat sat on the 
     mat the 
      cat 

Как слова различной длины, я хочу разбивается на ближайшее пространство.

Возможно, я пытаюсь сделать слишком много с одной строкой. Однако мне не нравится идея циклов. Я начал с этим:

/.{5}\w*/g 

Я попытался добавление() вокруг и добавления {}, но не вполне могу получить вид регулярных выражений. Возможно ли это сделать? Или будет ли какая-то петля?

+1

Что случилось с петлями? – CoderDennis

+0

Поскольку CoderDennis подразумевает, что RegEx не является ответом на проблему. –

+0

Проблема должна быть уточнена. Знаете ли вы, сколько символов и/или слов вы хотите отображать в каждой строке? – radiaph

ответ

1

Я думаю, что есть что-то, что можно сделать даже с регулярным выражением, НО многое зависит от входной строки. Кроме того, вам придется подумать о том, как расположить куски, обрезать или нет, как проложить и т. Д., Поэтому просто регулярное выражение не будет делать.

Это регулярное выражение шаблон: ((?:[^\s]+(?:\s|$)){1,20}) может дать что-то похожее на то, что вы ищете в следующей строке: the cat sat on the mat the cat sat on the mat the cat sat on the mat. Он работает из-за дополнительных пробелов, где должен произойти пробой.

the 
cat sat 
on the mat the 
cat sat on the mat the 
cat sat on the 
mat 

См. demo.

Смежные вопросы