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/;

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/;

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?

Regards,
Thomas Hamann

Reply via email to