G'day JDoolin,
Welcome to the monastery.
Given your two examples in subsequent posts in this thread, this does what you want:
#!/usr/bin/env perl -l use strict; use warnings; my @test_strings = ( 'a { b } c ( d ) e', 'a { b } c ( d ) e {{F}} ((G))' ); my %replacement_for = ( '{' => ' lbracket ', ' { ' => ' lbracket ', '}' => ' rbracket ', ' } ' => ' rbracket ', ); for (@test_strings) { print "Initial string: '$_'"; replace(); print "Replaced string: '$_'"; } sub replace { s/( { | } |{(?!{)|(?<!})})/$replacement_for{$1}/g; }
Output:
Initial string: 'a { b } c ( d ) e' Replaced string: 'a lbracket b rbracket c ( d ) e' Initial string: 'a { b } c ( d ) e {{F}} ((G))' Replaced string: 'a lbracket b rbracket c ( d ) e { lbracket F rbracke +t } ((G))'
Two things to note:
-- Ken
|
|---|