字符串1
test()
欲替换成->
print("test()")
字符串2
test(a, b)
欲替换成->
print("test(a, b)", a, b)
怎么样写匹配和替换正则, 能不能用正则替换实现?
^(test\((.*)\))$
->
print\("\1"\, \2\)
我这样写字符串1不能正确替换..
字符串1
test()
欲替换成->
print("test()")
字符串2
test(a, b)
欲替换成->
print("test(a, b)", a, b)
怎么样写匹配和替换正则, 能不能用正则替换实现?
^(test\((.*)\))$
->
print\("\1"\, \2\)
我这样写字符串1不能正确替换..
var str = "test(p1,p2)";
var reg = /^test\((.*)\)$/;
var changeStr = str.replace(reg,function(match,$1){ return $1?`print("${match}",${$1})`:`print("${match}")`});
console.log(changeStr);
var reg = /^(?!\d)([A-Za-z\d_$]+)\(((?!\d)[A-Za-z\d_$]+(?:\,(?!\d)[A-Za-z\d_$]+)+)?\)/; //验证变量合法性
var str= 'test(a,b,egergergerg,n,z,gergerg,fadwaZ1,f1,a_1,aaam,hg4)'; //测试数据
str = str.replace(reg,key = str.match(reg)[2]?'print\("$1($2)"\, $2)':'print\("$1()")');
一条正则估计无法替换你说的两处不同的情况。
源串:test(a, b)
查找:([^\(\)\s]+\(([^,\)]+,[^,\)]+)?\))
替换:print\(\"\1\"\,\2\)
源串:test()
查找:([^\(\)\s]+\(\))
替换:print\(\"\1\"\)