Regex 如何使用搜索/替换访问vim中的正则表达式匹配?
样本: 我想在vim中编写一个搜索并替换正则表达式,它可以执行以下操作:Regex 如何使用搜索/替换访问vim中的正则表达式匹配?,regex,vim,Regex,Vim,样本: 我想在vim中编写一个搜索并替换正则表达式,它可以执行以下操作: function foobar($arg1 = null, $arg2 = null) { $_a = $arg1; $_b = $arg2; } 这就是我迄今为止所尝试的: 使用命令重复我在vim中的最后一个操作,但它只附加:1到行 我已经编写了几十种这种正则表达式的变体,但无法按预期工作: %s/\$\u a\t=\t*/(!\$arg1)\t\?\t\2\t\:\t1/g 手动替换行,但不用说,我必
function foobar($arg1 = null, $arg2 = null) {
$_a = $arg1;
$_b = $arg2;
}
这就是我迄今为止所尝试的:
命令重复我在vim中的最后一个操作,但它只附加:1代码>到行
%s/\$\u a\t=\t*/(!\$arg1)\t\?\t\2\t\:\t1/g
$arg1
,然后用三元运算符将匹配项括起来,但我无法访问vim中的正则表达式匹配项
任何帮助都将不胜感激
(不必在vim中完成,我愿意接受使用perl之类的建议)
谢谢 尝试以下命令:
function foobar($arg1 = null, $arg2 = null) {
$_a = (!$arg1) ? $arg1 : 1;
$_b = (!$arg2) ? $arg2 : 1;
}
上面的命令replace$arg1代码>与(!$arg1)$arg1:1代码>
:%s/\(\$arg[0-9]\);/(!\1) ? \1 : 1;