如何在不更换的情况下找到东西

时间:2018-02-02 09:12:56

标签: regex atom-editor

我想使用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)

但它找到了这条线并想要替换它

1 个答案:

答案 0 :(得分:2)

您可以使用前瞻(?=require)

(var|let)\s?(\w+)\s?\=\s?(?=require)
                         ^^^^^^^^^^^

=之后匹配可选空格后,前瞻将断言require子串的存在,如果缺少,则匹配将失败。

请注意,为了填充$2,您需要将\w+与捕获组包装起来。

请参阅regex demo

<强>详情

  • (var|let) - 第1组:varlet子字符串
  • \s? - 1或0个空格
  • (\w+) - 第2组:一个或多个单词字符
  • \s?\=\s? - 包含1或0个空格的=
  • (?=require) - 一个积极的前瞻,需要在当前位置的左侧立即显示require