使用 vim 正则表达式匹配多行 JavaScript 导入



>我在js文件中有这些导入

import { Field } from 'redux-form';
import {
fullName,
} from '../../../common/helpers/users';

我正在尝试仅匹配第二个导入。我尝试使用此搜索

/^imports{_.*}sfroms'../../../common/helpers/users';$

还有这个使用v

/v^imports{_.*}sfroms'../../../common/helpers/users';

但是这两种正则表达式模式都匹配两个导入(基本上是所有内容)。我怎么能只匹配第二个?

import {
fullName,
} from '../../../common/helpers/users'

谢谢!

似乎在第一个表达式中添加换行符将匹配第二个导入语句,但与第一个导入语句不匹配。

^imports{n_.*}sfroms'../../../common/helpers/users';$

如果要在换行符之前允许尾随空格,也可以添加它。

^imports{s*n_.*}sfroms'../../../common/helpers/users';$

您只需要在{后添加一个n

/^imports{n_.*}sfroms'../../../common/helpers/users';$

解释

_.匹配任何单个字符或行尾,因此import{后带或不带换行符的语句都将匹配。

通过在{后添加一个n,vim 将只匹配第二种类型的import语句。

最新更新