regexp:first_match

Erik Pearson <>
Mon Nov 19 20:05:18 CET 2001


I think the documentation could be made much clearer.

My experience is that regexp:match selects the longest
match when the match can start at *different* positions
in the string.  Keep in mind, a match at any given
position is *always* the longest match.

In Niels' case,

2> regexp:first_match("<DATE>22-03-03</DATE>","<.+>").

There are two matches in the string:

{match,1,21}
{match,15,7}

But because of greediness there is no match
for the first 6 characters; they're consumed
in the first match case.

To see the difference with match and first_match,
try adding an optional pattern to differentiate
the longest from the first match.

1> regexp:match("12123", "123?").
{match,3,3}
2> regexp:first_match("12123", "123?").
{match,1,2}

--erikp--

-----Original Message-----
From: Bengt Kleberg [mailto:]
Subject: Re: regexp:first_match 

According to the documentation
regexp:match()
will get thet longest match, exactly as you state.

regexp:first_match()
is documented as only matching the first match (which should be the one
Niels 
Christensen wanted).

bengt



More information about the erlang-questions mailing list