我在js文件中有这些导入
import { Field } from 'redux-form';
import {
fullName,
} from '../../../common/helpers/users';
我正在尝试仅匹配第二个导入。我尝试使用此搜索
/^import\s{\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$
以及使用\v
/\v^import\s\{\_.*\}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';
但是这两种正则表达式都匹配导入(基本上都是一切)。我怎样才能匹配第二个?
import {
fullName,
} from '../../../common/helpers/users'
谢谢!
答案 0 :(得分:1)
似乎在第一个表达式中添加换行符将匹配第二个import语句,但不匹配第一个。
^import\s{\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$
如果你想在换行符之前允许尾随空格,你也可以添加它。
^import\s{\s*\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$
答案 1 :(得分:1)
您只需在\n
之后添加{
:
/^import\s{\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$
<强>解释强>
\_.
匹配任何单个字符或行尾,因此import
之后带有或不带换行符的{
语句都会匹配。
在\n
之后添加{
,vim只会匹配第二种import
语句。