[tpm] Regex question

Uri Guttman uri at stemsystems.com
Tue Nov 6 11:30:41 PST 2007


>>>>> "EJ" == Emil Janev <ejanev at gmail.com> writes:

  EJ> Hi Indy,
  EJ> Instead of:

  EJ> while ($x =~ s//(^|$)foo.*?\n//gs) {1;}

  EJ> I tried:

  EJ> $x =~ s/(^|$)foo.*?\n//mgs;

the /s is bad there as it makes . match newline so that could run over a
line. even if it works, it is misleading as you don't want . to match
newline.

i don't know what the (^|$) is for. $ at the beginning of a regex makes
no sense and ^ will always match as it has /m set and there are
lines. so the |$ should never even be hit.

my version (untested) is this:

	s/^foo.*$//mg;

uri

-- 
Uri Guttman  ------  uri at stemsystems.com  -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs  ----------------------------  http://jobs.perl.org


More information about the toronto-pm mailing list