我想使用原子查找和替换功能来更改项目中的行,例如
var expressJwt = require('express-jwt');
进入
const expressJwt = require('express-jwt');
所以我做了一个正则表达式:
(var|let)\s?\w+\s?\=\s?require
我添加了替换功能
const $2 = require
但我不想在替换中再次输入“require”,并且我不知道如何不在查找函数中捕获它。 我尝试找到了
(var|let)(?:\s?\w+\s?\=\s?require)
但它找到了该行并想要替换它
最佳答案
您可以使用前瞻,(?=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
。
关于regex - 如何在不更换东西的情况下找到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579295/