我正在尝试编写正则表达式以匹配混合缩进(即制表符和空格)。
这是我目前拥有的:
.*((\t )|( \t))\s*
结果:
({--->
代表制表符,点代表空格)。
....--->....foo matched
--->....--->foo matched
--->....foo matched
....--->foo matched
问题是它与行中间的混合空格匹配。我想摆脱这种匹配,即我只想匹配缩进:
....foo....--->....bar should not be matched
答案 0 :(得分:3)
如评论中所述,您缺少的最重要的功能是字符串开始锚点(^
),并且不应该使用.*
,因为它也会匹配非空格,您要避免的。
您可以使用^\s*(\t | \t)\s*
或^(\t+ | +\t)\s*
获得比赛。第二个会更有效。
根据您的环境,您可能需要添加m
修饰符(或等效项),以使^
与行的开头(而不是整个输入的开头)匹配。 / p>