<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 14, 2014 at 11:04 AM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Joe,<div><br></div><div>I hereby accuse you of abusing regular expressions where less will do:</div><div>
<br></div><div><div>3> [P || P <- binary:split(<<"123abcabc456">>, <<"abc">>, [global]), P /= <<>>]. </div>
<div>[<<"123">>,<<"456">>]</div></div><div><br></div><div>In Standard ML, there are two token-split operations,</div><div><br></div><div><a href="http://www.standardml.org/Basis/string.html#SIG:STRING.tokens:VAL" target="_blank">http://www.standardml.org/Basis/string.html#SIG:STRING.tokens:VAL</a><br>
</div><div><br></div><div>the important notion being that the 'tokens' variant omits redundant whitespace (what you want) and 'fields' keeps the whitespace (what you want when parsing e.g., CSV files). The code in e(3) probably doesn't generate a lot of garbage.</div>
</div></blockquote><div><br></div><div><br></div><div>Actually I wanted to do something a tad more complicated - </div><div><br></div><div>Thanks anyway to everybody who replied. </div><div><br></div><div>/Joe</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Fri, Feb 14, 2014 at 10:41 AM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">I'm sitting here feeling very stupid, can anybody explain to me in terms that<div>
a child of five could understand what's going on here:</div>
<div><br></div><div>Problem: I want to split a string on repeated occurrences of the string</div>
<div>"abc"</div><div><br></div><div> so split("123abcabc456") should return [<<"123">>,<<"456">>]</div><div><br></div><div>So I thought I could use re for this:</div>
<div><br></div><div>> re:split("123abcabc456", "(abc)+"). </div><div>[<<"123">>,<<"abc">>,<<"456">>]</div><div><br></div><div>
<br></div><div>The manual page says the matching split string is not included in the</div><div>output - at least that what it appear to me to say.</div><div><br></div><div>How in the name of the great blue-eyed slimy thing that hides under stones</div>
<div>can I get rid of the additional <<"abc">> - this is totally not obvious to me.</div><div><br></div><div>try again:</div><div><br></div><div>> re:split("123abcabcabc456", "abc",[notempty]).</div>
<div>[<<"123">>,<<>>,<<>>,<<"456">>]</div><div><br></div><div><br></div><div>I was under the vague impression that <<>> *was* and empty string</div>
<div><br></div><div>I knew I hated regular expressions, can't they be outlawed?<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div><br></div><div><br></div>
<div><br></div><div>/Joe</div></font></span></div>
<br></div></div><div class="">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></div></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>J.
</font></span></div>
</blockquote></div><br></div></div>