样品:
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;
}
这是我到目前为止所尝试的:
.
命令在vim中重复我的上一个操作,但它只将: 1;
附加到行%s/\$_a\t=\t*/(!\$arg1)\t\?\t\2\t\:\t1/g
基本上我想做的是写一个匹配的正则表达式
$arg1
然后将匹配与三元运算符括起来,但我无法访问vim中的正则表达式匹配。
任何帮助将不胜感激!
(不必在vim中完成,我对使用perl这样的建议持开放态度)
谢谢!
答案 0 :(得分:1)
尝试以下命令:
:%s/\(\$arg[0-9]\);/(!\1) ? \1 : 1;
以上命令将$arg1;
替换为(!$arg1) ? $arg1 : 1;