使用 vim 正则表达式匹配多行 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\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
语句。
我在 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\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
语句。