如果我有这样的字符串
my $s = 'src="/api/385/=VIGTIG%20UPDATE%20!.jpg?size=webview" /></span>';
如何将所有%20
替换为_
与/api/385/
之间的所有>
?
答案 0 :(得分:4)
这将做你想要的事情
$s =~ s|(/=[^>]+)| (my $ss = $1) =~ s/%20/_/g; $ss |e;
但是你知道%20
是空格的十六进制吗?
答案 1 :(得分:3)
一种方法是写:
$s =~ s{(/api/385/[^>]*>)}{my $tmp = $1; $tmp =~ s/%20/_/g; $tmp}e;
将(/api/385/[^>]*>)
替换为其中%20
替换为_
的结果。 (e
中的s///
标记表示“替换内容是表达式,而不是字符串文字”。)