我正在尝试编写一个非常基本的shell到python转换器,并且在替换变量时遇到了一些麻烦。例如,我想:
echo $var1 $var2 $var3
echo $var1 $var2 $var3 $var4
成为:
print var1, var2, var3
print var1, var2, var3, var4
目前,就变成:
print var1, var2 var3
print var1, var2 var3, var4
我的正则表达式是:
$string =~ s/(\$[a-z]+[a-z0-9]*)(\s+\S+)/$1,$2/gi;
出于某种原因,它不会将正则表达式再次应用于ma的第二部分即使设置了全局修饰符,也是如此。
非常感谢任何帮助!
好的。虽然这个字符串会失败:'echo $ var1 $ var2 $ var3 $ var4 $ var6'。你也不需要'A-Z',因为你已经在最后使用了不敏感标志。 – Kash
@卡什你是对的。我现在修好了。但是它会添加一个尾随的','以及下面的解决方案。不知道如何避免添加尾随逗号。 – Hameed
好的。有没有一个在线测试器,我们可以测试Perl代码(不只是正则表达式,而是替换)?我认为我们可以捕获不同组中的最后一个变量,并尝试“$ 1,$ 2”。不知道这是否会奏效。 – Kash