Re: the only difference is the 'x' after '/g'



i need the blank in 'From [' etc in order to distinguish it from the strings
with 'From:' one solution to the problem, btw, is to use '\s' instead of a
literal blank. does this behavior rank as a bug in perl?

tom arnall
north spit, ca


On Thursday 30 March 2006 05:15 am, Hans Meier (John Doe) wrote:
tom arnall am Donnerstag, 30. März 2006 12.36:
the following code:

my (@main);
$_="
From a
From: b
From: c
From: d
";
@main = /From [^\n]*?\n.*?(From: .*?\n).*?/gx;
print "@main";
print "------------------------------\n";
@main = /From [^\n]*?\n.*?(From: .*?\n).*?/g;
print "@main";

produces:

From: b
From: d
------------------------------
From: b

the only difference between the two regex lines is the 'x' after '/g' in
the first of the two regex lines.

indeed :-)

And your question could be: Why does this produce different results?

There's an additional difference on the semantic level: spaces in the 1st
regex are irrelevant. Look at the first regex space: in the 2nd regex, it
matches (only) in "From a", but not in "From: c", whereas the 1st regex
matches "From a" *and* "From: c".

/From[^\n]*?\n.*?(From: .*?\n).*?/gx;
and
/From[^\n]*?\n.*?(From: .*?\n).*?/g;
produce both the same output.

hth!
Hans

.



Relevant Pages

  • Re: the only difference is the x after /g
    ... /x tells sys' to ignore all white space, not just \n. ... in the first of the two regex lines. ... Look at the first regex space: ...
    (perl.beginners)
  • Re: the only difference is the x after /g
    ... does this behavior rank as a bug in perl? ... in the first of the two regex lines. ... Look at the first regex space: ...
    (perl.beginners)
  • Re: the only difference is the x after /g
    ... the first of the two regex lines. ... There's an additional difference on the semantic level: ... Look at the first regex space: ...
    (perl.beginners)
  • Re: Java vs. Pascal
    ... Strings zu tun. ... 500 pattern.split~Regex ... Mit wiederverwendetem pattern hat man da schon 30% der Zeit gespart. ... Das Potential der verschiedenen Methoden (RegEx, StringTokenizer, split2) ...
    (de.comp.lang.java)
  • Regex doesnt match - what am I doing wrong?
    ... I am having trouble matching a regex that combines a negated character ... This matched all strings regardless of whether or not they ended in a ...
    (comp.lang.perl.misc)