Sublime正则表达式每个文件只找到一个匹配项

时间:2015-01-26 11:28:21

标签: regex sublimetext sublimetext3

我尝试在Sublime Text中使用以下regexp find / replace将commonjs模块require转换为es6模块import语句。

查找

var (\w+) = require\('(\w+)'\)\;

替换

import $1 from '$2';

不知何故,它只找到每个文件一个匹配项,并且只在第一行找到。我需要更改什么才能使其在整个文件中匹配?我尝试过为全球添加一个/ g,但没有运气。

这是一些示例文字。

var React = require('react');
var Router = require('react-router');

如果我使用find(cmd -F)它只会找到第一个出现,无论我按下find / find prev / find all。

1 个答案:

答案 0 :(得分:2)

var (\w+) = require\('(\w+)'\)\;

此处\w表示任何字符 但是你的第二行

var Router = require('react-router');

还有一个破折号,我猜这不是单词字符。

使用以下正则表达式来识别短划线。

var (\w+) = require\('([\w\-]+)'\)\;