vim 正则表达式用于替换引号内的空格

2024-04-03

我有以下格式的文本:

ERR_OUT_OF_MEM, "ERR OUT OF MEM"
ERR_SOMETHING_BAD, "ERR SOMETHING BAD"

我想用下划线替换文本中引号内的所有空格:

 ERR_OUT_OF_MEM, "ERR_OUT_OF_MEM"
 ERR_SOMETHING_BAD, "ERR_SOMETHING_BAD"

我能想到的最好的正则表达式是:

\("\w\+\)\@<= 

(最后有一个空格)

但这只能找到每个带引号的字符串中的第一个空格,我需要多次重复此操作才能获得所需的效果。

有什么办法可以一次性完成吗?

Thanks!


当然有一种 0 长度模式可以一次性工作,但由于我使用它们从未取得过太大成功,所以我更喜欢这种方法:

:%s/\%("[^"]*"\)*\("[^"]*"\)/\=substitute(submatch(1), ' ', '_', 'g')/g

注意:双引号保持 2 乘 2 分组,以免发生转换

foo bar "foo bar" "foo barr"

into

foo bar "foo_bar"_"foo_barr"

编辑:正如 Rampion 指出的那样,以下内容就足够了:

%s/"[^"]*"/\=substitute(submatch(0), ' ', '_', 'g')/g
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vim 正则表达式用于替换引号内的空格 的相关文章

  • 匹配 JavaScript RegEx 中的不可见字符

    我有一些包含不可见字符的字符串 但它们位于可预测的位置 通常 围绕我想要提取的文本片段 然后在第二次出现之后我想保留文本的其余部分 我似乎不知道如何关闭隐形字符 and将它们从我的结果中排除 为了匹配隐形 我一直在使用这个正则表达式 xA0
  • jQuery自动完成插件-自定义突出显示功能

    我的每个项目的自动完成结果如下所示 h3 Celebrity Sweepstakes h3 p 0 episodes p 但我只想突出显示 H3 内的标题 请参阅下面的 突出显示 功能 我不知道如何更改原始正则表达式以仅替换标题内的内容 s
  • 字边界正则表达式问题

    我在使用单词边界时遇到问题 b在我的正则表达式中 我正在使用 R 但当我尝试时问题也存在http regexr com http regexr com 我使用的模式是 bs l b 虽然我预计下面的第 1 行和第 3 行能够匹配此模式 但只
  • 如何使用 preg_replace 实现带条件的模板

    我正在尝试实现一个管理界面 经理可以在其中创建网站元标记形成的高级规则 我有一个函数 它采用模板并用 registry 中的值替换其中的占位符 并在需要时应用修饰符 registy array profession name gt acto
  • Apache mod_rewrite 将双斜杠转换为单斜杠

    我有一个像这样的网址 http example com img php url http example2 com path to image name jpg 所以我通过这个问题创建了一条规则Apache mod rewrite 复杂 U
  • 将字符串分解为标记,保持引用的子字符串完整

    我不知道我在哪里看到它 但是谁能告诉我如何使用 php 和 regex 来完成这个任务 this is a string that has quoted text inside 我希望能够像这样爆炸它 0 this 1 is 2 a 3 s
  • 多行 C# 正则表达式在空行后匹配

    我正在寻找一个多行正则表达式 它将匹配空行后出现的情况 例如 给定下面的示例电子邮件 我想匹配 发件人 Alex From s 可以匹配任何 From 行 但我希望它仅限于正文中的行 第一个空白行之后的任何行 Received from a
  • 正则表达式匹配带有连字符和/或撇号的单词

    我正在寻找一个正则表达式来匹配带有连字符和 或撇号的单词 到目前为止 我有 w w w 这在大多数情况下都有效 但如果先有一个撇号 然后有一个连字符 例如 qu est ce 则它不匹配 我可以附加更多选项 尽管也许还有另一种更有效的方法
  • Vim 脚本中的“reduce”函数

    Vim 脚本有一些非常基本的函数式编程工具 It has map and filter 但据我所知它缺乏reduce 功能 Reduce https en wikipedia org wiki Fold 28higher order fun
  • VIM 始终使用选项卡式页面

    我想要一个可以放入 vimrc 文件中的命令 该命令将使 vim 始终以选项卡式页面模式打开 而无需传递 p在命令行上 有这样的命令吗 如果没有 是否有更好的方法来做到这一点 目前 我正在使用 alias vi vim p 在我的 bash
  • 使用 sed 删除非字母数字字符

    我正在尝试验证一些输入以删除一组字符 只允许使用字母数字字符加 句点 下划线 连字符 我测试了正则表达式 w here http gskinner com RegExr http gskinner com RegExr 它与我想要删除的内容
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • php 或 zend 中国际电话号码验证的正则表达式是什么?

    我有一个 zend 表单 其中有一个电话号码字段 并且必须检查验证器 我决定为此使用正则表达式 我搜索了谷歌 但我得到的结果不起作用 谁能给我提供正则表达式 这是我的代码 phone new Zend Form Element Text p
  • 如何在 jQuery 中将标题转换为 URL slug?

    我正在 CodeIgniter 中开发一个应用程序 我试图在表单上创建一个字段来动态生成URL slug 我想做的是删除标点符号 将其转换为小写 然后用连字符替换空格 例如 Shane s Rib Shack 将变成 shanes rib
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • RegularExpressionValidator.ValidationExpression 强制长度为 10 或 12 个符号

    RegularExpressionValidator ValidationExpression d 10 仅表示数字 最多 10 位 RegularExpressionValidator ValidationExpression d 10
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • 有没有办法匹配任意 Unicode 字母字符?

    我有一些文档经过 OCR 从 PDF 转换为 HTML 因此 他们最终会出现很多随机的 unicode 标点符号 而转换器会搞砸 即省略号等 他们还正确地有一堆非英语但仍然是字母字符 如 和俄语字符等 有没有办法制作一个匹配任何 unico
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦

随机推荐

  • Spark UDAF以ArrayType作为bufferSchema性能问题

    我正在开发一个返回元素数组的 UDAF 每次更新的输入是索引和值的元组 UDAF 的作用是将同一索引下的所有值相加 Example 对于输入 索引 值 2 1 3 1 2 3 应该返回 0 0 4 1 0 逻辑工作正常 但我有一个问题更新方
  • PHP 会话似乎无法正常工作

    会话变量显然不适合我 我不知道我做错了什么 这是我用来检查有效密码的代码 if input password hash password hash session start SESSION is user 1 header Locatio
  • 我可以从 Lambda 层导入打字稿类型吗?

    我尝试在构建 Lambda 函数时使用 TypeScript 但在使用也是用 TypeScript 编写的 Lambda 层时遇到问题 TypeScript 无法识别我的层的 opt nodejs 导入 因为它将在 SAM 或 AWS 中运
  • 是否可以使用带有 FUSE 文件系统的 Linux VFS 缓存?

    默认情况下 Linux VFS 缓存似乎不适用于 FUSE 文件系统 例如 read 调用似乎被系统地转发到 FUSE 文件系统 我在 FUSE 特定的远程文件系统上工作 我需要一个非常积极的缓存 我需要实现自己的页面缓存吗 或者是否可以为
  • htaccess 重写和递归内部重定向

    我想做一个简单的内部 htaccess 重写 即 http localhost icore4 t9 module ac Main php do subject add to http localhost icore4 module ac M
  • 学说-按日期分组

    我有这个查询 SELECT DATE FORMAT exp date Y m AS Month sum exp total FROM export GROUP BY DATE FORMAT exp date Y m 我尝试将其转换为 Sym
  • 使用 Ruby 和 Mechanize 登录网站

    我需要从网站上抓取数据 但这需要我先登录 我一直在使用 hpricot 成功抓取其他网站 但我对使用 mechanize 还很陌生 而且我真的对如何使用它感到困惑 我看到这个例子经常被引用 require rubygems require
  • 正则表达式捕获可选标记后的所有内容

    我的字段包含以下可能格式的数据 每行都有不同的可能性 AAA Something Here AAA Something Here D Something Here 请注意 第一组字母 AAA 的长度可以不同 我试图捕获的是使用 PCRE 的
  • 使用速记运算符进行类型转换

    byte b 12 b gt gt 2 Why is this legal why does it automatically typecasts b b gt gt 2 Why is this illegal if the above i
  • 如何使用 C/C++ 写入/创建大于 2GB 的文件

    我尝试使用 write 函数将一大块内存写入文件 超过 2GB 但从未成功 有人可以好心告诉我该怎么做吗 假设是 Linux https users suse com aj linux lfs html https users suse c
  • 如何在 Flutter 中添加图标的增加/配置粗细/粗体(FontWeight)

    我的 Flutter 应用程序中有一个图标 具体是后退图标 它看起来更轻 我想出于某种原因让它变得大胆 增加重量 Container child Icon Icons arrow back color Color 0xffffffff pa
  • 在jquery中获取选定tr的td值

    下面是我的桌子 table tr class chargeTR td charge1 td td charge2 td tr table 下面是我的 jQuery 调用 chargeTR each function this line wo
  • 跨域ajax请求后保留cookie

    一个 JavaScript 应用程序运行在10 0 0 1尝试通过跨域 ajax 调用来验证其用户 该请求如下所示 function test again ajax type GET url http example com userinf
  • 简单框架:重复注释(不同的命名空间)

    我有一个 Rss 提要 我想使用简单框架在 Java 中解析它 我遇到了两个同名元素的问题 但其中一个元素分配了命名空间 下面是一个 xml 示例
  • ActionScript 3 分析器和内存分析工具

    我正在使用 Adob e Flash CS 4 想知道是否有可用的分析器或内存分析工具 动作脚本 3 我知道有适用于 Flex 的工具 但是有适用于 Flash CS 4 的工具吗 谢谢 我确信那里有一个程序 仍在寻找我自己 但我 大多数
  • 如何从 Angular2 和 ng-bootstrap 组件中的 NgbTabSet 访问“select”方法?

    使用 Angular 2 3 1 和 ng bootstrap 1 0 0 alpha 18 我正在尝试以编程方式根据组件中的 ID 而不是模板内的 ID 选择选项卡 目标是从 url 中提取参数并使用它来选择 ngOnInit 中的选项卡
  • 在 Javascript 中从本地数据保存文件

    场景如下 用户来到我的网站并打开一个带有一些 JavaScript 功能的网页 用户通过javascript编辑数据 用户单击保存按钮来保存数据 事情是 他们似乎不需要下载这些数据 因为它已经在本地计算机上的 JavaScript 中 是否
  • 用于检测 .NET CF 3.5 并安装它的 Windows Mobile Cab 设置

    我使用 NET CF 3 5 等目标框架和 professional 6 SDK 开发了 windows mobile 6 professional 应用程序 还创建了其 SmartDeviceCab 文件 当我将其安装在没有 CF 3 5
  • 如何控制.NET SoapFormatter中的命名空间?

    我正在编写一些需要向后兼容使用 SOAP 序列化某些对象的现有远程处理代码的代码 我的困难是我必须将一些对象移动到新程序集 因此远程处理被破坏 例如 我使用 NET SoapFormatter 序列化一个对象 如下所示 Person p n
  • vim 正则表达式用于替换引号内的空格

    我有以下格式的文本 ERR OUT OF MEM ERR OUT OF MEM ERR SOMETHING BAD ERR SOMETHING BAD 我想用下划线替换文本中引号内的所有空格 ERR OUT OF MEM ERR OUT O