Ruby - Как вы сканируете этот текстовый контент? - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу вывод, подобный этому: ["# foo\n\n1234\n\n", "# bar\n\nk23j4k2j4\nk23j4kj4\n\n", "# baz\n\nk2k2k2\n\n"] с методом scan из следующего текстового содержимого.

content = '

# foo

1234

# bar

k23j4k2j4
k23j4kj4

# baz

k2k2k2

'

Я попробовал следующий код. Но это не сработало, как я думаю.

p content.scan(/^#.*/m)
# => ["# foo\n\n1234\n\n# bar\n\nk23j4k2j4\nk23j4kj4\n\n# baz\n\nk2k2k2\n\n"]

Как вы решаете это?

примечание: в качестве альтернативы Вы можете использовать split или другие методы вместо scan.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

попробуйте

content.scan(/#[^#]*/)

соответствует # и чему-либо еще, пока не найдете # снова

=> ["# foo\n\n1234\n\n", "# bar\n\nk23j4k2j4\nk23j4kj4\n\n", "# baz\n\nk2k2k2\n\n"] 
0 голосов
/ 15 сентября 2018

. соответствует всем строкам, включая #.Вы должны исключить это.

content.scan(/^#[^#]*/m)
# => ["# foo\n\n1234\n\n", "# bar\n\nk23j4k2j4\nk23j4kj4\n\n", "# baz\n\nk2k2k2\n\n"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...