Hamann, T.D. wrote:
Hello,
Hello,
Given a string: i994 where I want to replace the 'i' by a '1' the following regex succesfully replaces the letter by a number: s/(i)(\d\d\d)/1$2/;
tr/i/1/;
However, given a string: i99o where I want to replace the 'i' by a '1' and the 'o' by a '0' (zero), the following regex fails: s/(i)(\d\d)(o)/1$20/;
tr/io/10/;
for the obvious reason that perl looks for a pattern match at bracket set #20, which doesn't exist. I can fix this by inserting a space in front of the zero, like this: s/(i)(\d\d)(o)/1$2 0/; and then using a second regular expression to remove the space, but that somehow seems silly. Surely there is a quicker way to do this?
s/(i)(\d\d)(o)/1${2}0/; John -- Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction. -- Albert Einstein -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/