vim:无法匹配制表符后的空格
我有这样的文本(1或0制表符+行首多个空格): 当我使用vim:无法匹配制表符后的空格,vim,Vim,我有这样的文本(1或0制表符+行首多个空格): 当我使用^[\t\s]\s*时,只有第1、2行匹配,第3、4行不匹配,为什么 (当我使用^\s*时,第3行和第4行可以匹配。) 谢谢 这很有趣。我不确定为什么\s在[]括号内不起作用。可能是因为[]定义了显式字符,而\s不明确(它可以代表多个字符)。换句话说,\s代表任何空白,包括一个选项卡(\t)。但是,如果在这种情况下显式指定一个空格(^[\t]\s*),它将起作用。这很有趣。我不确定为什么\s在[]括号内不起作用。可能是因为[]定义了显式字符
^[\t\s]\s*
时,只有第1、2行匹配,第3、4行不匹配,为什么
(当我使用^\s*
时,第3行和第4行可以匹配。)
谢谢 这很有趣。我不确定为什么
\s
在[]
括号内不起作用。可能是因为[]
定义了显式字符,而\s
不明确(它可以代表多个字符)。换句话说,\s
代表任何空白,包括一个选项卡(\t
)。但是,如果在这种情况下显式指定一个空格(^[\t]\s*
),它将起作用。这很有趣。我不确定为什么\s
在[]
括号内不起作用。可能是因为[]
定义了显式字符,而\s
不明确(它可以代表多个字符)。换句话说,\s
代表任何空白,包括一个选项卡(\t
)。但是,如果在本例中明确指定一个空格(^[\t]\s*
),它将起作用。结果是,您不能使用\s
来匹配[]
中的空格。
只需使用
在[]
中匹配它,您就无法使用\s
来匹配[]
中的空白。
只需使用
在[]
中进行匹配,如前所述\s
在[]
中不起作用,或者您可以使用[:blank:][/code>字符类:
^[[:blank:]]\+
如前所述,\s
在[]
中不起作用,或者您可以使用[:blank:][/code>字符类:
^[[:blank:]]\+
是的,这就是我尝试和发现的(经过46次尝试)。谢谢。是的,这就是我尝试和发现的(经过46次尝试)。谢谢。正确\t
是的转义序列(如\n
),但\s
是一个特殊的原子。必须这样组合:\(\s\\[\t]\)
正确\t
是的转义序列(如\n
),但\s
是一个特殊的原子。它们必须这样组合:\(\s\\[\t]\)