Ax~B~xCx~xDx
... yayarlar ...
A~-B-~C~-~D~
Birlikte ~ karakterleri değiştirmek istiyorum. İki kez dize üzerinden geçerek
ben yazabilirim ...
s/~/-/g;s/x/~/g;
... ama bu (gibi görünüyor).
Ax~B~xCx~xDx
... yayarlar ...
A~-B-~C~-~D~
Birlikte ~ karakterleri değiştirmek istiyorum. İki kez dize üzerinden geçerek
ben yazabilirim ...
s/~/-/g;s/x/~/g;
... ama bu (gibi görünüyor).
Karakterlere göre değiştirmek için "transliterate" kullanın. Bu deneyin:
tr/~x/\-~/;
Eğer tek karakterler ile uğraşıyoruz yana, tr /// bariz cevap: Ancak
tr/~x/-~/;
, sen s /// başa ihtiyacımız olacak uzun diziler:
my %subs = ('~' => '-', 'x' => '~');
my $pat = join '|', map quotemeta, keys %subs;
s/($pat)/$subs{$1}/g;
Neden RegEx kullanıyorsunuz? Neden sadece ipin üzerinden kendini tekrarlamıyorsun? –
Çünkü bu ... ... PEEEEEEEEEERL !!!! Nah daha ciddiye, regeeksler tüm şeyleri yazmak zorunda kalmadan daha kısa ve daha hızlıdır. – m0skit0
@CoreyOgburn Çünkü dizenin üzerinde yineleme yaparsam perlde C (veya FORTRAN?) Yazıyorum ve amaç perl yazmak. –