Replace string in assembly code
examples/regex-perl/assembly_source.txt
mv A, R3 mv R2, B mv R1, R3 mv B, R4 add A, R1 add B, R1 add R1, R2 add R3, R3 add R21, X add R12, Y mv X, R2
examples/regex-perl/assembly_process.pl
#!/usr/bin/perl use strict; use warnings; # assuming there are no R4 values then 4 substitutions will do s/R1/R4/g s/R3/R1/g s/R2/R3/g s/R4/R2/g # or without any assumption and in one substitution: my %map = ( R1 => 'R2', R2 => 'R3', R3 => 'R1', ); s/\b(R[123])\b/$map{$1}/g; s/\b(R1|R2|R3|R12)\b/$map{$1}/g; my $regex = join "|", keys %map; s/\b($regex)\b/$map{$1}/g;