簡體   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