[erlang-questions] efficient binary escape

Wes James <>
Tue Apr 17 23:20:05 CEST 2012


On Tue, Apr 17, 2012 at 2:43 PM, Dmitry Kolesnikov
<> wrote:
> Hello Erlangers!
>
> I'd like to get your opinion on the binary escaping techniques using erlang-only.
>
> Let's say that I have binary   <<"ab,cdef,qwert,yuiop,....">> I wish to escape (substitute) comma by \, to get <<"ab\\,cdef\\,qwert\\,yuiop,....">>. In other words, a single byte of binary sequence has to be replaced by multiple bytes.
>
> and I do have about 35 - 50M tokens to procedure. The straight forward approaches like
>  * binary:replace
>  * sub(<<$,, Rest/binary>>, Acc) ->
>      sub(Rest, <<Acc/binary, $\, $,>>)
>    ....
> two slow for me!
>
> Do you have any suggestion? What is you experience?


How about:

re:replace(<<"ab,cdef,qwert,yuiop,">>,",","\\\\,",[{return, binary},global]).

-wes



More information about the erlang-questions mailing list