使用正则表达式匹配文本块中的选项卡

发布于 2024-08-02 05:54:09 字数 351 浏览 1 评论 0原文

如何匹配使用制表符缩进的文本块?

假设我有以下文本:

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.

我想匹配选项卡中的所有内容(即代码)。

How can I match a block of text that is indented using tabs?

Say I have the following text:

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.

I want to match all the content that is tabbed in (ie. the code).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掀纱窥君容 2024-08-09 05:54:09

这将返回一个数组,每个块包含一个字符串:

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"]

This will return an array with one string per block:

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"]
狼亦尘 2024-08-09 05:54:09

只要您不使用多行匹配,您就可以摆脱这个:/^\t+.+/

As long as you're not using multiline matches, you can get away with this: /^\t+.+/.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文