我遇到了关于正则表达式的问题。
我正在尝试实现正则表达式以仅选择制表符缩进块,但我无法找到使其工作的方法:
示例:
INDENT(1)
INDENT(2)
CONTENT(a)
CONTENT(b)
INDENT(3)
CONTENT(c)
所以我需要像以下一样的块:
INDENT(2)
CONTENT(a)
CONTENT(b)
和
INDENT(3)
CONTENT(c)
我怎么能这样做?
真的很好,几乎就是这样,这是我最初的需要:
table
tr
td
"joao"
"joao"
td
"marcos"
我需要分开的“td”块,我可以调整你的例子吗?
答案 0 :(得分:1)
您可以使用以下正则表达式来获取组...
[^\s]*.*\r\n(?:\s+.*\r*\n*)*
这要求你的线条不要以块的开头的空格开头。
答案 1 :(得分:1)
这取决于你想要做什么,但也许是这样的:
^(\t+)(\S.*)\n(?:\1\t.*\n)*
工作示例:http://www.rubular.com/r/qj3WSWK9JR
模式搜索:
^(\t+)(\S.*)\n
- 一个以标签开头的行(我还捕获了一组中的第一行,只是为了查看效果),然后是(?:\1\t.*\n)*
- 包含更多标签的行。同样,您可以将^( +)(\S.*)\n(?:\1 .*\n)*
用于空格(example)。但是,混合空格和制表符可能会有点问题。
对于更新后的问题,请考虑使用^(\t{2,})(\S.*)\n(?:\1\t.*\n)*
,在该行的开头至少有两个标签。