Regex 查找混合缩进空格

Regex 查找混合缩进空格,regex,Regex,我试图编写正则表达式来匹配混合缩进(即制表符和空格) 以下是我目前的情况: .*((\t )|( \t))\s* 结果: (-->代表制表符,点代表空格) 问题是,它与中间的混合空格相匹配。我想摆脱这种匹配,即我只想匹配缩进: ....foo....--->....bar should not be matched 如注释中所述,您缺少的最重要的功能是字符串锚(^)的开头,您不应该使用*,因为这也会匹配非空白,您希望避免使用 您可以使用^\s*(\t|\t)\s*或^(\t++\

我试图编写正则表达式来匹配混合缩进(即制表符和空格)

以下是我目前的情况:

.*((\t )|( \t))\s*
结果:

-->
代表制表符,点代表空格)

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

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

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

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


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

那些
->
s的点是什么意思?要匹配构成字符串开头的空格或制表符,请尝试
^[\t]+
@revo
-->
平均值选项卡。我已经将它添加到我的帖子中。可能还有其他方法,但是如果支持lookaheads,我会使用这个
^(?=\s*\t)\s*\s*
或者可能
^(?=*\t)\t*\s*
@PatrickArtner不能正常工作。在第二个选项中,您并不真正需要尾随符\s*,是吗?@Richard,您确实需要它,例如匹配tab+space+space\s*意味着零个或多个空格字符,并且在正则表达式中没有尾随符,也没有结束锚定符($)。因此,一旦你匹配了(\t++++\t)字面上的任何匹配项(包括“nothing”)匹配项。是的,删除它仍然会给出一个匹配项,但OP的目的是在匹配项中包含这些额外的空格。这一点很好。仅供参考,在我第一次发表评论之前,我就已经投票给你了:-)
....foo....--->....bar    should not be matched