[erlang-questions] beginner: How should regexp:split/2 be replaced?

Raimo Niskanen raimo+erlang-questions@REDACTED
Wed Apr 20 09:08:37 CEST 2011


On Tue, Apr 19, 2011 at 09:14:04PM +0000, Robert Virding wrote:
> Perhaps its because they think that adding/subtracting one is too difficult. Or perhaps it is because they want to adhere to the convention that indexing starts at 0 in spite of that most other erlang things index from 1. 
> 
> Robert 
> 

It was zero-based in EEP 11
 http://www.erlang.org/eeps/eep-0011.html
and there was no discussion about that EEP.

This also surfaced in a diskussion about EEP 31:
 http://erlang.org/pipermail/eeps/2009-December/000278.html

Patrik Nyblom wrote:
>
> Robert Virding wrote:
> >
> > - It seems like 'binary' indexes binaries from 0. Is this wise? While
> > indexing them from 1 may not have been a good choice having two different
> > standards must surely be much worse and be a source of future confusion. I
> > know that 're' does this but I think that was a bad mistake!
>
> We (OTP), reluctantly, made the decision to have zero-based indices as a 
> rule for binary-oriented modules although Erlang is traditionally 
> one-based. The reason beeing foremost the hassle of 
> using one-based indices in bit syntax (the only thing you can make with a 
> one based index is to make it zero based, it's useless in bit-syntax until 
> that is done). Having different bases in different binary-oriented modules 
> would add to the confusion (and make for a less convenient interface).
> So, the design relu is now that all indices in binaries are zero-based. I 
> obviously won't make this module an exception.
>
End of quote Patrik Nyblom.

The array module is also zero based.
 http://www.erlang.org/doc/man/array.html

/ Raimo Niskanen




> ----- "Ahmed Omar" <spawn.think@REDACTED> wrote: 
> > I mean i understand it's different indexing, but was there specific reason to change that? 
> > 
> > 
> > On Tue, Apr 19, 2011 at 4:18 PM, Ahmed Omar < spawn.think@REDACTED > wrote: 
> > 
> 
> 
> 
> regexp:split("Hello world, Hello", "[ ]*,[ ]*"). 
> {ok,["Hello world","Hello"]} 
> 
> > 
> re:split("Hello world, Hello", "[ ]*,[ ]*",[{return, list}]). 
> ["Hello world","Hello"] 
> 
> > 
> 
> regexp:matches("Hello \n","\n"). 
> {match,[{7,1}]} 
> 
> > 
> re:run("Hello \n","\n"). 
> {match,[{6,1}]} 
> 
> > 
> but i'm not sure why the start position is different here 
> 
> 
> > 
> > 
> > On Tue, Apr 19, 2011 at 3:30 PM, Bengt Kleberg < bengt.kleberg@REDACTED > wrote: 
> > 
> 
> Greetings, 
> > 
> > I have inherited some code without a test directory. I get the following 
> > compiler warnings: 
> > ./compile_funcs.erl:603: Warning: regexp:split/2: the regexp module is 
> > deprecated (will be removed in R15A); use the re module instead 
> > ./compile_funcs.erl:645: Warning: regexp:matches/2: the regexp module is 
> > deprecated (will be removed in R15A); use the re module instead 
> > 
> > The lines are: 
> > {ok, Class} = regexp:split(Class0, "[ ]*,[ ]*"), 
> > and 
> > {match,A}=regexp:matches(String,"\n"), 
> > 
> > I thought "[ ]*,[ ]*" would mean: 
> > the character class of " " (space), 0 or many times, followed by literal 
> > "," followed by the character class of " " (space), 0 or many times. 
> > 
> > This is not the case and I am not having any luck with randomly 
> > constructing strings to find one that triggers a Class that is different 
> > from Class0. 
> > 
> > Perhaps someone knows what "[ ]*,[ ]*" really means, and what to replace 
> > these with when using the re module. 
> > 
> > 
> > bengt 
> > 
> > _______________________________________________ 
> > erlang-questions mailing list 
> > erlang-questions@REDACTED 
> > http://erlang.org/mailman/listinfo/erlang-questions 
> > 
> > 
> 
> > -- 
> > Best Regards, 
> > - Ahmed Omar 
> http://nl.linkedin.com/in/adiaa 
> Follow me on twitter 
> @spawn_think 
> > 
> > 
> 
> > -- 
> > Best Regards, 
> > - Ahmed Omar 
> http://nl.linkedin.com/in/adiaa 
> Follow me on twitter 
> @spawn_think 
> > 
> > _______________________________________________ erlang-questions mailing list erlang-questions@REDACTED http://erlang.org/mailman/listinfo/erlang-questions 
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions


-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list