如何使用搜索/替换在Vim中访问正则表达式匹配项?

我喜欢炸玉米饼

样本:

function foobar($arg1 = null, $arg2 = null) {
    $_a = $arg1;
    $_b = $arg2;
}

我想写一个搜索并替换vim中的正则表达式来做到这一点:

function foobar($arg1 = null, $arg2 = null) {
   $_a = (!$arg1) ? $arg1 : 1;
   $_b = (!$arg2) ? $arg2 : 1;
 }

到目前为止,这是我尝试过的:

  1. 使用.命令来重复我在vim中的最后一个动作,但它只会追加: 1;到行中
  2. 我已经编写了许多此正则表达式的变体,但无法使其按预期工作: %s/\$_a\t=\t*/(!\$arg1)\t\?\t\2\t\:\t1/g
  3. 手动替换这些行,但是不用说我必须对大量文件进行此操作。

基本上我想做的是编写一个匹配的正则表达式,$arg1然后用三进制运算符将其括起来,但是我无法在vim中访问该正则表达式匹配项。

任何帮助将不胜感激!

(它不必在vim中完成,我愿意接受使用perl之类的建议)

谢谢!!

虚假的

尝试以下命令:

:%s/\(\$arg[0-9]\);/(!\1) ? \1 : 1;

上面的命令替换$arg1;(!$arg1) ? $arg1 : 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Objective-C中的正则表达式:如何用动态模板替换匹配项?

如何在Python中用正则表达式中的函数替换匹配项

如何捕获全局正则表达式替换中的每个匹配项?

使用正则表达式替换字符串中的匹配项

使用包含记事本++中先前匹配项的正则表达式替换

如何使用vim替换与正则表达式匹配的所有整行

正则表达式,如何排除匹配中的搜索

正则表达式将匹配项中的所有匹配项替换x次

正则表达式子方法不会替换python正则表达式中的所有匹配项

Python正则表达式-搜索和替换匹配项

在查找和替换模块中声明的正则表达式将无法正确访问匹配项

Vim搜索替换正则表达式+增量功能

Vim搜索和替换-正则表达式

正则表达式替换为匹配项

表达式中涉及数学除法时,如何使用vim正则表达式替换文本

在查找/替换中使用正则表达式替换多个匹配项

如何使用正则表达式在数据表中搜索完全匹配

如何使用GPRename的正则表达式功能将匹配组重新插入“替换”中?

Sed - 如何匹配正则表达式组并使用它来替换同一行中的所有其他匹配项?

如何在Vim中的交互式搜索/替换正则表达式中从向前切换到向后?

如何使用正则表达式查找部分匹配项重叠的所有匹配项

R-替换正则表达式中的第1组匹配项,但不替换完全匹配项

如何正则表达式匹配和正则表达式替换php中的字符串

在Groovy中使用正则表达式替换字符串中的所有匹配项

如何从正则表达式搜索中提取跨度和匹配项?

如何用正则表达式替换多个匹配项/组?

Vim中的交互式搜索/替换正则表达式?

正则表达式包括搜索中的现有匹配项

搜索文件中多行正则表达式的匹配项(无pcregrep)