Соответствие с вкладками в блоках текста с помощью регулярных выражений - PullRequest
1 голос
/ 20 августа 2009

Как мне сопоставить блок текста с отступом с помощью вкладок?

Скажите, у меня есть следующий текст:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

    # This is a text block
    @some = 'ruby'
    @then = 'some more'

Aliquam malesuada scelerisque orci, sed venenatis sem eleifend ac. Vestibulum vehicula sagittis commodo. Praesent dapibus lacinia aliquam.

Я хочу сопоставить весь контент с вкладками (т. Е. Код).

Ответы [ 2 ]

3 голосов
/ 20 августа 2009

Это вернет массив с одной строкой на блок:

str = %Q{
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

\t# This is a text block
\t@some = 'ruby'
\t@then = 'some more'

Aliquam malesuada scelerisque orci, sed venenatis sem eleifend ac. Vestibulum vehicula sagittis commodo. Praesent dapibus lacinia aliquam.
\t# another block
\tfoo(bar)
}

str.scan(/(?:^\t.*\n)+/) #=> ["\t# This is a text block\n\t@some = 'ruby'\n\t@then = 'some more'\n", "\t# another block\n\tfoo(bar)\n"]
0 голосов
/ 20 августа 2009

Пока вы не используете многострочные совпадения, вы можете обойтись следующим: /^\t+.+/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...