On Jun 3, Jay Savage said:
On 6/3/05, Jeff 'japhy' Pinyan <[EMAIL PROTECTED]> wrote:
s/\b(I|II|...)\b//g;
This isn't going to get them all; it says to match (between word
boundaries) "I" or "II" or any three non-newlines. So it will catch
"I", "II", "III", and "VII". It will also catch "I" where it's a
pronoun (assuming this is an english text file), and any three-letter
words/constructs.
I'm sorry, that regex wasn't meant to be taken literally. I just didn't
feel the need to reproduce the alternations *again*.
I would trysomething like this:
s/\bI(?:I+|V|X)?|VI*|XI*\b//
This will get rid of the "I" in "Ishmael". Your \b anchors aren't
effective on the *entire* pattern. You're matching
\bI(?:I+|V|X)?
or
VI*
or
XI*\b
The regex I would use would probably be
/\b(?:I{1,3}|IV|VI{0,3}|I?X)\b/
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://japhy.perlmonk.org/ % have long ago been overpaid?
http://www.perlmonks.org/ % -- Meister Eckhart
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>