[erlang-questions] re and newlines

Sean Cribbs <>
Sun Jan 10 21:04:44 CET 2010


In other PCRE implementations (Ruby, Perl), this is the "m" option on 
the regexp - that is, allowing '.' to match newlines. The corresponding 
option in the re module seems to be 'dotall'.

In Ruby:

 >> "\nabc" =~ /(.+)(?=abc)/
=> nil
 >> "\nabc" =~ /(.+)(?=abc)/m
=> 0
 >> "\rabc" =~ /(.+)(?=abc)/m
=> 0

In Erlang:

1> re:run("\nabc", "(.+)(?=abc)", []).
nomatch
2> re:run("\nabc", "(.+)(?=abc)", [dotall]).
{match,[{0,1},{0,1}]}
3> re:run("\rabc", "(.+)(?=abc)", [dotall]).
{match,[{0,1},{0,1}]}

Cheers,

Sean

On 1/10/10 2:46 PM, Zoltan Lajos Kis wrote:
> Hello all,
>
> Can I somehow convince re to treat _all_ kinds of newline characters 
> just like ordinary ones?
>
> 1> re:run("\rabc", "(.+)(?=abc)").
> {match,[{0,1},{0,1}]}
> 2> re:run("\nabc", "(.+)(?=abc)").
> nomatch
>
> I would like both of these (and all alike) to match. I see a {newline, 
> NLSpec} option, but it does
> not have an 'off' switch, does it?
>
> Regards,
> Zoltan.
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>



More information about the erlang-questions mailing list