我有这样的文本(1或0个选项卡+行开头的多个空格):
(tab) There are a tab and 4 whitespaces before me. // line 1
(tab) There are a tab and 6 whitespaces before me. // line 2
There are 6 whitespaces before me. // line 3
There are 4 whitespaces before me. // line 4
当我使用^[ts]s*
时,只有第1、2行匹配,第3、4行不匹配,为什么?
(当我使用^s*
时,第3行和第4行可以匹配。)
谢谢!
事实证明,您不能使用s
来匹配[]
中的空白。只需使用在
s
中进行匹配。
这很有趣。我不知道为什么[]
不能在[]
括号内工作。也许是因为s
定义了显式字符,而s
是不明确的(它可以代表多个字符)。换句话说,t
代表任何空白,包括一个选项卡(^[t ]s*
)。但是,如果在这种情况下显式指定了一个空间(s
),它将起作用。
注意到[]
在[:blank:]
中不起作用,或者您可以使用CCD_16字符类:
^[[:blank:]]+