vim中怎样匹配中括号对


好像是用\[匹配[,用]匹配],我用\[*]可以匹配到中括号对,但是a\[*]并不能匹配到有a在前面的括号对(数组a),而用a\[却可以匹配到a和a后面的左中括号,为什么?

正则表达式 vim

唬人无极限 10 years, 7 months ago

 \[*]匹配的是0到多个[,后面是一个],例如],[],[[]等
中间的*匹配的[,并不是指中括号中间的任意字符重复0-N次。

中括号中间的任意字符,简单的话可以使用.*表示,但是同一行有多个中括号的话会全部匹配,如:
a[i+1]= b[i-1]这样的表达式会被全部匹配。

试一下下面这个,应该可以匹配a后面的带中括号的表达式
a\[[^]]*]

jokery answered 10 years, 7 months ago

Your Answer