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

标签 regex atom-editor

我想使用原子查找和替换功能来更改项目中的行,例如

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 组:varlet 子字符串
  • \s? - 1 或 0 个空格
  • (\w+) - 第 2 组:一个或多个单词字符
  • \s?\=\s? - 包含 1 或 0 个空格的 =
  • (?=require) - 正向前瞻,要求当前位置左侧立即存在 require

关于regex - 如何在不更换东西的情况下找到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579295/

相关文章:

regex - Oracle 正则表达式 :\Q\E doesn't work

javascript - 在为 Atom 开发包时,如何写入包文件夹内的 JSON 文件?

java - 如何使用 ATOM 编辑器构建和运行项目

javascript - 正则表达式 : Why this regex doesn't match "not starts with" two letter?

python - 在Python中使用正则表达式解析具有重复模式的字符串?

python - 解析维基媒体 API

regex - 在 Notepad++ 中使用正则表达式的行号?

Node.js - 子进程抛出错误,但在 OS X 下可以在终端中执行命令

angularjs - tsconfig.json : using TypeScript in a team with Atom and VSCode?

python - 远程服务器设置: nuclide-start-server command doesn't work