in reply to Re: Re: boundary reg expression
in thread boundary reg expression
Well, sort of ;) Take these examples:
s/\bold\b/new/gi; # 1: replaces all instances of the string, e.g. "old", # "OLD", "Old", "OlD" on either side with "new". s/\bold\b/new/g; # 2: replaces "old" with "new" -- case sensitive here. s/\bOLD\b/NEW/g; # 3: replaces "OLD" with "NEW" s/\bOLD\b/NEW/gi; # 4: replaces same variants of "OLD" as in 1 with "NEW"
So, to finally answer your question: yes, but I think you might need that other "\b".
Something that might help you a lot, as it did for me, is YAPE::Regex and YAPE::Regex::Explain by our very own japhy. They can be downloaded off the CPAN. For example:#!/usr/bin/perl use YAPE::Regex::Explain; print YAPE::Regex::Explain->new(qr/\bold\b/i)->explain;
gives the following explanation.
The regular expression: (?i-msx:\bold\b) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?i-msx: group, but do not capture (case-insensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char ---------------------------------------------------------------------- old 'old' ---------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------
--
Allolex
|
|---|