查找混合缩进空格



我正在尝试编写正则表达式以匹配混合缩进(即制表符和空格(。

这是我目前拥有的:

.*((t )|( t))s*

结果:

(--->代表制表符,点代表空格(。

....--->....foo    matched
--->....--->foo    matched
--->....foo        matched
....--->foo        matched

问题是它匹配行中间的混合空格。我想摆脱这种匹配,即我只想匹配缩进:

....foo....--->....bar    should not be matched

如注释中所述,您缺少的最重要的功能是字符串开头锚点( ^ (,您不应该使用 .*,因为这也会匹配您想要避免的非空格。

您可以使用^s*(t | t)s*^(t+ | +t)s*获得匹配。第二个会更有效率。

根据您的环境,您可能需要添加 m 修饰符(或等效项(,以便^与行首(而不是整个输入的开头(匹配。

最新更新