正则表达式如何匹配缩进块

问题描述 投票:0回答:2

我想将任何缩进块匹配到具有 0 个空格的下一行。我尝试的是:

^[^\s](\w*|\s+)
但这并不能满足我的需要。我的期望是像这样的字符串数学:

ajk
 sjdklj
fkldf fl kas dl  4jkl
   asdjk l    sdklj a wk
        ssdklj
4ksk adlj 2jklj

有比赛组:

匹配 1

ajk
 sjdklj

比赛2

fkldf fl kas dl  4jkl
   asdjk l    sdklj a wk
        ssdklj

第 3 场比赛

4ksk adlj 2jklj

所以用简单的英语来说:任何以 0 空格开头的块(块内允许空格和缩进)。 任何帮助表示赞赏。

编辑

^[^\s]\w+.*
匹配缩进块的第一行,但不匹配缩进行本身。

regex indentation
2个回答
0
投票

你可以试试:

/(^\H.*(?:\n^\h+.*)*)/gm

演示

或:

/(^\S.*(?:\n^\h+.*)*)/gm

如果你不想捕捉领先

\n


0
投票

这是我的 Python“风格”,将缩进块或单行放入捕获组:

(?P<block>^\S.+(?:\n\s.+)*)

例子

© www.soinside.com 2019 - 2024. All rights reserved.