我有一行
if (($x > 0) && ($flag == 1))
我想用冒号(:)替换最后一个“)”。所以它变成
if (($x > 0) && ($flag == 1):
我尝试使用$line =~ s/\)$/\:/;
,但它不起作用
任何帮助将不胜感激
答案 0 :(得分:2)
以下内容应将最后)
替换为:
:
$line =~ s/\)([^)]*)$/:$1/;
答案 1 :(得分:0)
您正在寻找的RegEx是
$line =~ s/.*\K\)/:/;
如果您正在使用严格和警告,那么如果之前尚未声明,则可能会遇到使用$ line中的变量的问题。您应该阅读Perl Regular Expressions。
答案 2 :(得分:0)
在行的末尾可能有空格(例如换行符)(除非你已经明确删除了它),所以下面的正则表达式应该可以做到(同时保留换行符):
$line =~ s/\)(\s*)$/:$1/;