【发布时间】:2017-04-30 05:33:58
【问题描述】:
使用 VIM 中的标准搜索函数 (/),有没有办法使用通配符(匹配 0 个或多个字符)进行搜索?
例子:
我有一个数组,我想找到分配数组索引的任何位置。
array[0] = 1;
array[i] = 1;
array[index]=1;
等等。
我正在寻找类似
的东西/array*=
如果可能的话。
【问题讨论】:
使用 VIM 中的标准搜索函数 (/),有没有办法使用通配符(匹配 0 个或多个字符)进行搜索?
例子:
我有一个数组,我想找到分配数组索引的任何位置。
array[0] = 1;
array[i] = 1;
array[index]=1;
等等。
我正在寻找类似
的东西/array*=
如果可能的话。
【问题讨论】:
我认为您误解了通配符的工作原理。它不匹配 0 个或多个字符,它匹配 0 个或多个 前面的原子,在本例中为 y。所以搜索
/array*=
将匹配以下任何一个:
arra=
array=
arrayyyyyyyy=
如果您想匹配 0 个或多个任意字符,请使用“点”原子,它将匹配除换行符以外的任何字符。
/array.*=
如果你想要更健壮的东西,我建议:
/array\s*\[[^\]]\+\]\s*=
它是“数组”后跟 0 个或多个空格,后跟括号中包含的任何内容,后跟 0 个或多个空格,后跟一个“等号”。
【讨论】:
试试
array.*
.* 使它意味着什么或什么都没有。在 array* 中,* 转到 y 。
【讨论】: