Christian Kruse: Regulärer Ausdruck

Beitrag lesen

Hallo André,

es sei denn, man löst per Fragezeichen die Greediness auf.

Ähhmmm? Das sagt mir jetzt nichts.

perldoc -q greedy:

What does it mean that regexes are greedy?  How can I get around it?

Most people mean that greedy regexes match as much as they can.
  Technically speaking, it's actually the quantifiers ("?", "*",
  "+", "{}") that are greedy rather than the whole pattern; Perl
  prefers local greed and immediate gratification to overall greed.
  To get non-greedy versions of the same quantifiers, use ("??",
  "*?", "+?", "{}?").

An example:

$s1 = $s2 = "I am very very cold";
    $s1 =~ s/ve.*y //;      # I am cold
    $s2 =~ s/ve.*?y //;     # I am very cold

Notice how the second substitution stopped matching as soon as it
  encountered "y ".  The "*?" quantifier effectively tells the
  regular expression engine to find a match as quickly as possible
  and pass control on to whatever is next in line, like you would if
  you were playing hot potato.

Grüße,
 CK

--
Willst du die Freuden dieser Welt geniessen, so musst du auch ihr Leid erdulden.
http://wwwtech.de/