我正在尝试编写正则表达式以匹配混合缩进(即制表符和空格(。
这是我目前拥有的:
.*((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
修饰符(或等效项(,以便^
与行首(而不是整个输入的开头(匹配。