我想要以下改变:
原版的 :
Format="%05dA1"
StartValue="2"
Format="%05dB1"
StartValue="2"
Format="%05dC1"
StartValue="2"
Run Code Online (Sandbox Code Playgroud)
改性:
Format="%05dA2"
StartValue="2"
Format="%05dB2"
StartValue="2"
Format="%05dC2"
StartValue="2"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下正则表达式,但我无法得到我想要的.
$main_course =~ s/05d\w{2}\d{1}/05d\w{2}$name/g
Run Code Online (Sandbox Code Playgroud)
我担心人们正在努力解决这个问题.如果你正在运行的Perl 5版本10或更高版本(你应该,因为这是逾50岁),则可以有效地采用\K该序列ķ做托换时EEPS什么左边.
use strict;
use warnings;
while (<DATA>) {
s/%05[a-z]{2}\K(\d)/$1+1/gie;
print;
}
__DATA__
Format="%05dA1"
StartValue="2"
Format="%05dB1"
StartValue="2"
Format="%05dC1"
StartValue="2"
Run Code Online (Sandbox Code Playgroud)
产量
Format="%05dA2"
StartValue="2"
Format="%05dB2"
StartValue="2"
Format="%05dC2"
StartValue="2"
Run Code Online (Sandbox Code Playgroud)
如果您遇到旧版本的Perl,那么只需捕获第一部分并再次将其重新放回
s/(%05[a-z]{2})(\d)/$1.($2+1)/gie;
Run Code Online (Sandbox Code Playgroud)