regex - Emacs : Search and replace operations

标签 regex emacs operation

我正在寻找一种在进行操作的同时用 Emacs 搜索和替换正则表达式的方法。我真的不知道如何解释,但这里有一个例子:

假设我的代码有 200 多行:

"lq.u $r40r41 = 0[$r39]\n"
"addd $r14r15 = $r14$r15, $r40$r41\n"
";;\n"              
"lq.u $r42r43 = 16[$r39]\n"             
"addd $r16r17 = $r16$r17, $r42$r43\n"
";;\n"    

我在选择寄存器时犯了一个错误,所以我想将它们更改为:

"load $r39r40 = 0[$r39]\n"
"add $r13r14 = $r13$r14, $r39$r40\n"
";;\n"              
"load $r41r42 = 16[$r39]\n"             
"addd $r15r16 = $r15$r16, $r41$r42\n"
";;\n"  

所以基本上,我想要的是一种正则表达式搜索 2 位数字“XX”并将其替换为“XX-1”的方法。有没有办法通过 Emacs 或其他方式做到这一点?

我设法节省了使用 Excel 工作表进行手动编辑的时间,但我需要一种更高效、更简单的方法来做到这一点。

最佳答案

我无法判断 r 之前是否应该始终有一个 $,所以要么:

M-x 查询替换正则表达式 RET \$r\([0-9]+\) RET $r\,(1-\#1) RET

或者:

M-x 查询替换正则表达式 RET r\([0-9]+\) < kbd>RET r\,(1-\#1) RET

地点:

  • \, 在替换中计算 Lisp 表达式,因此:
  • \,(1- ...) 是对 1- 函数的调用,参数为:
  • \#1 在此替换语法中,将匹配的组 1 表示为数字。

关于regex - Emacs : Search and replace operations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53667300/

相关文章:

Python正则表达式删除某些模式之间的文本

regex - 在 Go 中的空格上拆分字符串?

regex - 非交互式 emacs 正则表达式替代品

lua - 为什么不能使用Set:union()代替Set.union?

python - 正则表达式: How to name a group using match result

c# - ASP.NET Web 配置写入、删除 .ASPX 和忽略带句点的文件名。

emacs - 如何使用 Magit 为暂存文件创建补丁

regex - Emacs 中的 c-x c-f(打开文件)接受哪些正则表达式?

c# - 由 Directory.Delete() 引起的 WCF 安全异常

c# - C#中如何同时读取和写入同一个文件