繁体   English   中英

使用vim regex匹配多行javascript导入

[英]Matching multiline javascript import using vim regex

我在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'

谢谢!

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

^import\s{\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$

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

^import\s{\s*\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$

您只需要在{之后添加\\n

/^import\s{\n\_.*}\sfrom\s'\.\.\/\.\.\/\.\.\/common\/helpers\/users';$

说明

\\_. 匹配任何单个字符或行尾 ,因此import语句在{之后有或没有换行符都将被匹配。

通过在{之后添加\\n ,vim将仅匹配第二种类型的import语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM