我想使用atom find和replace函数来改变项目中的行,如
var expressJwt = require('express-jwt');
到
const expressJwt = require('express-jwt');
所以我做了一个正则表达式:
(var|let)\s?\w+\s?\=\s?require
我输入了替换功能
const $2 = require
但我不想再打字"要求"在替换中,我不知道如何在查找功能中捕获它。 我试过了
(var|let)(?:\s?\w+\s?\=\s?require)
但它找到了这条线并想要替换它
答案 0 :(得分:2)
您可以使用前瞻(?=require)
:
(var|let)\s?(\w+)\s?\=\s?(?=require)
^^^^^^^^^^^
在=
之后匹配可选空格后,前瞻将断言require
子串的存在,如果缺少,则匹配将失败。
请注意,为了填充$2
,您需要将\w+
与捕获组包装起来。
请参阅regex demo。
<强>详情
(var|let)
- 第1组:var
或let
子字符串\s?
- 1或0个空格(\w+)
- 第2组:一个或多个单词字符\s?\=\s?
- 包含1或0个空格的=
(?=require)
- 一个积极的前瞻,需要在当前位置的左侧立即显示require
。