[erlang-questions] re and newlines

Zoltan Lajos Kis <>
Sun Jan 10 21:12:20 CET 2010


Great, thanks!

Sean Cribbs wrote:
> 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.



More information about the erlang-questions mailing list