[erlang-questions] escaping values for re:replace

Hynek Vychodil <>
Tue Jul 27 23:54:53 CEST 2010


Usual perlish idiom is to escape all non alphanumeric characters. I
think that use of re module for escaping is little bit overkill. I
would write:

escape([]) -> [];
escape([H|T]) when H>=$0, H=<$9; H>=$a, H=<$z; H>=$A, H=<$Z -> [H|escape(T)];
escape([H|T]) -> [$\\, H|escape(T)].

This should be way how quotemeta works in Perl but only for latin1.

On Tue, Jul 27, 2010 at 10:53 PM, Wes James <> wrote:
> I created a function:
>
> escape(S) ->
>        S2=re:replace(S, "\\*", "\\\\*", [{return,list}, global]),
>        S3=re:replace(S2, "\\[", "\\\\[", [{return,list}, global]),
>        S4=re:replace(S3, "\\(", "\\\\(", [{return,list}, global]),
>        re:replace(S4, "\\)", "\\\\)", [{return,list}, global]).
>
> to escape the values I know. Is there a more erlang way to do this?
> I'm trying to replace all *, [, (, ) with the escaped values.
>
> thx,
>
> -wes
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>



-- 
--Hynek (Pichi) Vychodil

Analyze your data in minutes. Share your insights instantly. Thrill
your boss.  Be a data hero!
Try GoodData now for free: www.gooddata.com


More information about the erlang-questions mailing list