例如,vim中的put / \ s将匹配任何空格,但/ [\ s]不匹配。
我认为这是因为https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended中所述的括号表达式中不允许使用反斜杠转义符,但后来我测试了/ [\ n],它正确地匹配了行尾。
为什么会出现这种情况?有没有文件描述这种行为?
答案 0 :(得分:2)
Vim使用自己品牌的正则表达式语法,这是AMAIK,未在维基百科上记录。像Vim一样,它已在Vim中记录,:help pattern
,并且在线也有a good introduction。
收藏集包含单个字符。由于\s
本身是空白字符的集合而不是单个字符,因此它不能包含在另一个集合中。如果要在集合中包含空格字符,则必须逐个包含它们:[ \t]
。
[\n]
有效,因为\n
是一个字符。
:help pattern
:help /[]
:help /[\n]