在 vi/vim 中替换并保留某些“单词”

2023-11-21

例如,如果我有$asd['word_123']我想把它替换为$this->line('word_123'),保留“word_123”。我怎么能这么做呢?

通过使用这个:

%s/asd\[\'.*\'\]/this->line('.*')/g

我无法保留中间的措辞。请赐教。


使用正则表达式,你可以做类似的事情:%s/\$asd\['\([^']*\)'\]/$this->line('\1')/g

一步步:

%s- 替换整个文件

\$asd\['- 匹配“$asd['”。注意$ and [需要转义,因为它们在正则表达式中具有特殊含义。

\([^']*\) - the \( \)可用于选择所谓的“原子”,以便您可以在替换中使用它。这[^']意味着任何东西not a ', and *表示匹配 0 个或多个。

'\]- 结束我们的比赛。

$this->line('\1')- 替换为我们想要的,并且\1替换为之前匹配的原子。

g- 对每行的多个匹配项执行此操作。

替代方案(宏观)

除了正则表达式,您还可以使用宏。例如,

qq/\$asd<Enter>ct'$this->line(<Esc>f]r)q

then @q根据需要多次。你也可以@@当你使用过之后@q一次,或者你可以80@q如果你想使用它80次。

替代方案(:标准)

在某些情况下,使用:norm可能是最好的选择。例如,如果您有一小段代码并且要匹配唯一的字符或位置。如果您知道“$”仅出现在特定代码块的“$asd”中,您可以直观地选择它并

:norm $T$ct'this->line(<C-v><Esc>f]r)<Enter>

有关更有效地使用 :norm 的讨论,请阅读:help :norm and 这篇 Reddit 帖子.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 vi/vim 中替换并保留某些“单词” 的相关文章

  • 正则表达式:删除 xml 的空元素标签

    我想将所有自封闭元素替换为长语法 因为我的网络浏览器在它们上绊倒 Example becomes 我正在使用 python 风格的正则表达式 这些解决方案都不会容纳像 foo gt 这样的属性 尝试 s lt w gt s gt lt 1
  • Python:删除字符串开头的数字

    我有一些这样的字符串 string1 123 123 This is a string some other numbers string2 1 This is a string some numbers string3 12 3 12 T
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 将字符串限制为逗号后 2 个数字且仅限 1 个逗号

    我有下面的脚本 只允许输入文本上的数字和逗号 function validate evt var theEvent evt window event var key theEvent keyCode theEvent which key S
  • 我应该在 .vimrc 文件中使用单引号还是双引号?

    单个 和双 在 Vim 中引用 它会造成速度差异吗 在其中运行函数时 使用其中一个更好还是另一个更好 这有什么关系吗 我对它们在以下方面的用途特别感兴趣 vimrc file 我这么问是因为我发现人们在同一件事上使用这两种方法 我想知道它们
  • 正则表达式:如何匹配所有大于 954 的数字?

    I tried 0 9 d d 4 但它没有给出正确的结果 I 不会使用正则表达式因为你会陷入丑陋的模式链中 但是 如果仍然必须或想要使用它 您可以使用如下正则表达式 1 9 d 3 9 6 9 d 9 5 9 2 工作演示 https r
  • 有人能给我一个 1 到 5 之间数字的正则表达式吗

    有人能给我一个 1 到 5 之间的单个数字的正则表达式吗 例如输入必须是 1 到 5 之间的数字 55 或 23 不匹配 尝试使用anchors http www regular expressions info anchors html
  • Python 正则表达式中的 \B+ 与 [\B]+ 与 [^\b]+

    我在回答 SO 问题时遇到了一个我不明白的问题 我创建了一个简化的示例来说明该问题 场景 我正在测试两个标记 不是随机的英语单词 在字符串中至少相距一定距离 在这个例子中 我们有一个动物列表 我们要确保在羊和狼之间至少还有其他三种动物 否则
  • 请解释*贪婪量词的工作原理

    Pattern ptn Pattern compile a Matcher mtch ptn matcher bbaac if mtch find System out println mtch group 输出 不打印任何内容 Patte
  • 正则表达式将从文本文件中提取句子

    我需要一个正则表达式来从文本文件中提取句子 示例文本 以 2004 年底发生的亚洲海啸灾难为例 对 Google 新闻 http news google com 的查询在一个月内 1 月 17 日 返回了超过 80 000 篇有关该事件的在
  • Laravel 验证规则仅针对字母

    我正在尝试添加验证规则以仅接受信件 我正在使用regex规则 但它仍然不起作用 下面是我的代码 Validate request input this gt validate request name gt required regex p
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • 局部变量或实例字段名称与正则表达式“[a-z]+”不匹配

    将 Android studio 升级到2 1 2 当我将旧项目导入其中时 我的代码中充满了警告 警告是 Instance field name doesn t match regex a z Local variable name doe
  • 使用正则表达式、kibana 搜索数组中的元素

    我正在搜索包含数组字段的记录payload params 我想显示包含该字符串的所有字段aabb 例子 payload params 3raabb 44aabb66 grgeg 展示 3raabb 44aabb66 如何在数组上使用正则表达
  • 替换 prolog 中的部分表达式

    我需要简化序言中的身份 例如x 0 x x x 0 ETC 为此 我需要替换表达式的部分内容 比如x 0 by x 您能帮我更换吗 Prolog 的一个巧妙之处在于您可以非常轻松地解构算术表达式 您的基本模板将如下所示 simplify X
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 正则表达式匹配bash变量

    我正在尝试修改 bash 脚本 当前脚本包含 print div class 1 div Where 1可能看起来像 Apprentice Historian Level 1 Historian Level 4 Master Histori

随机推荐

  • 调试器无法看到 Lambda 中的局部变量

    我注意到 当我将鼠标悬停在局部变量上时 当我的调试器停止在 lambda 内时 它会报告Cannot find local variable variable name 即使它在 lambda 内部可见并且已被使用 示例代码 public
  • python argparse 设置未提供参数时的行为

    我对 python 相当陌生 并且在使用命令行参数时一直困扰着如何构建我的简单脚本 该脚本的目的是自动执行我工作中与排序和操作图像相关的一些日常任务 我可以指定参数并让它们调用相关函数 但我也想在未提供参数时设置默认操作 这是我当前的结构
  • 如何以角度模拟模块

    所以我读了很多帖子 但到目前为止还没有有效的建议 我想模拟一个模块 比如说 angular foo 原始文件与其他所有文件一起加载 angular module app angular foo 我想在我的业力 摩卡测试中模拟这个模块 我已经
  • R:在深度嵌套列表中按名称查找对象

    Problem 我认为这应该是一个常见问题 但我找不到解决方案 让我们假设一个深度嵌套的列表 例如 my list lt list first node list group a list E001 1 5 E002 list F001 6
  • 将 JSON.NET JObject 转换为 JsonResult 时出现异常

    我有一个 JSON NET JObject 其数据结构如下 foo bar baz 我试图将其转换为 ASP NET MVC JsonResult 如下所示 JObject someData JsonResult jsonResult Js
  • 快速测试目录是否为空

    测试目录是否为空的最快方法是什么 当然我可以检查的长度 list files path all files TRUE include dirs TRUE no TRUE 但这需要枚举我宁愿避免的目录的全部内容 EDIT 我正在寻找便携式解决
  • Composer 不生成库的自动加载

    我已经设置了两个项目 一个 init 和一个库 这是 init 所需的 它们都设置了 PSR 0 自动加载 但库中的自动加载值不会添加到 init 项目中的vendor composer autoload namespaces php 中
  • 为什么 Math.max(double a, double b) 不是可变参数?

    为什么 Math max 的实现不是可变参数函数 它可以像这样实现 public class Main public static double max double values double max Double NEGATIVE IN
  • 逐像素颜色转换 WriteableBitmap => 仅 PNG 黑色到透明颜色

    我正在开发一个 silverlight 应用程序 其中所有图标都是 PNG 的颜色all这些图标是黑色的 或者更确切地说是黑色到灰色的 具体取决于 Alpha 值 每个 PNG 都有透明背景 在我的应用程序中 我想要逐个像素地进行颜色更改
  • 如何知道

    如果滚动结束已到达 div 标签 我需要触发一个函数 page bind scroll function e page is the ID of the div im scrolling if document body scrollHei
  • 左侧带有箭头的微调器

    我正在开发一个 RTL 语言的应用程序 想要更改 Spinner 左侧箭头的位置 有没有办法在不创建自定义微调器的情况下执行此操作 您必须编写一个自定义微调器 示例代码如下 您可以根据需要进行编辑
  • 在 Swift 中获取两个日期(月/日/小时/分钟/秒)之间的差异

    我试图将当前日期之间的差异作为NSDate 和来自 PHP 的日期time 调用例如 NSDate timeIntervalSinceReferenceDate 1417147270 我如何获取两个日期之间的时间差 我想要一个比较两个日期的
  • 找到正值的零交叉和负值的零交叉

    我有一个信号 我想在以下情况下复制 1 从过零开始变为正值 2 复制一定数量的点 例如8000 3 复制完 8000 个点后 继续追加点 直到找到向下的过零部分 我可以找到零交叉点 但我在知道如何判断零交叉点何时变为正值和 或零交叉点变为负
  • 无法再打开 Spyder IDE 进行 Python 编程

    几个月前 我在我的 Windows 7 笔记本电脑上安装了 Python 3 4 作为 Anaconda 的一部分 https www continuum io downloads 我的安装包括 Spyder IDE 并且我已成功使用 Sp
  • ES6 中是否有对 ES5 `module.exports = require('./inner.js')` 的一行类比?

    before module exports require inner js nowadays export default from inner js 我正在尝试这样做 但是 babel 只允许在 es7 stage 1 中这样做目前的建
  • 自定义属性 - 是还是不是?

    最近 我阅读了越来越多关于人们在 HTML 标签中使用自定义属性的文章 主要是为了嵌入一些额外的数据以在 javascript 代码中使用 我希望收集一些反馈 了解使用自定义属性是否是一个好的做法 以及一些替代方案 看起来确实可以简化bot
  • MSBuild IIS 问题

    我正在使用 MSBuild 打包和发布我的 Asp Net MVC 3 Net 4 应用程序 我已经为 MVC 1 0 Net 3 5 应用程序成功完成了此操作 每当我包含 IIS 设置 IncludeIisSettings true 在我
  • ASP.NET MVC 视图模型最佳实践

    我的 ASP NET MVC 站点连接到 WCF 服务以获取数据 WCF 服务返回如下数据协定 DataContract public class Person DataMember public string First get set
  • 对特定 URL 强制使用 HTTPS

    这应该很快 这是我当前的 htaccess 文件 BEGIN WordPress
  • 在 vi/vim 中替换并保留某些“单词”

    例如 如果我有 asd word 123 我想把它替换为 this gt line word 123 保留 word 123 我怎么能这么做呢 通过使用这个 s asd this gt line g 我无法保留中间的措辞 请赐教 使用正则表