@@ -, +, @@ MarcModificationTemplate and note it does not work. yield the expected results. --- Koha/SimpleMARC.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/Koha/SimpleMARC.pm +++ a/Koha/SimpleMARC.pm @@ -636,6 +636,8 @@ sub _modify_values { my $regex = $params->{regex}; if ( $regex and $regex->{search} ) { + $regex->{replace} =~ s/"/\\"/g; # Protection from embedded code + $regex->{replace} = '"' . $regex->{replace} . '"'; # Put in a string for /ee $regex->{modifiers} //= q||; my @available_modifiers = qw( i g ); my $modifiers = q||; @@ -645,16 +647,16 @@ sub _modify_values { } foreach my $value ( @$values ) { if ( $modifiers =~ m/^(ig|gi)$/ ) { - $value =~ s/$regex->{search}/$regex->{replace}/ig; + $value =~ s/$regex->{search}/$regex->{replace}/igee; } elsif ( $modifiers eq 'i' ) { - $value =~ s/$regex->{search}/$regex->{replace}/i; + $value =~ s/$regex->{search}/$regex->{replace}/iee; } elsif ( $modifiers eq 'g' ) { - $value =~ s/$regex->{search}/$regex->{replace}/g; + $value =~ s/$regex->{search}/$regex->{replace}/gee; } else { - $value =~ s/$regex->{search}/$regex->{replace}/; + $value =~ s/$regex->{search}/$regex->{replace}/ee; } } } --