[erlang-questions] escaping chars in re:replace

Antoine Koener antoine.koener@REDACTED
Wed Jul 28 13:48:30 CEST 2010


On Wed, Jul 28, 2010 at 12:00 AM, Wes James <comptekki@REDACTED> wrote:

> What I'm doing is providing a search for site on book titles.  There
> are *, [, (, ? chars in the data and I'm putting bold html around the
> search text.  <b>search text</b>
>
> I'm using re:replace on the the database return value.
>
> Say a person types in "(b)", then on the page output this needs to be
> changed to <b>(b)</b>.
>
> Is there a better way to get the <b> around text with erlang other
> than the re:replace?
>

Result = [ <<"<b>">>, WhatUserHasTyped, <<"</b>">> ],
gen_tcp:send(Socket, Result),

May be ?



>
> thx,
>
> -wes
>
> On Tue, Jul 27, 2010 at 3:43 PM, Fred Hebert <mononcqc@REDACTED> wrote:
> > There are many characters to escape:  ()[]{}\|*.+?:!$^<>= to name those I
> > can think of.
> >
> > You have to be careful when accepting user-submitted regular expressions,
> > because it's possible to find pathological cases that will take a long
> time
> > to be ran. As far as I know, Erlang's re module is implemented as C code,
> > which could potentially lock your node (if anyone can confirm/deny).
> > It's generally a bad idea to run user-submitted regular expressions
> > server-side.
> > On Tue, Jul 27, 2010 at 4:40 PM, Wes James <comptekki@REDACTED> wrote:
> >>
> >> I'm replacing some values in some data.  It looks like when using
> >>
> >> re:replace here:
> >>
> >> http://www.erlang.org/doc/man/re.html
> >>
> >> the RE parameter needs to have the chars *, [, (,) escaped to be used.
> >>
> >> For example:
> >>
> >> re:replace("this*", "*", "!", [{return,list}, global, caseless])
> >>
> >> will error out with a bad argument error.  But this will work:
> >>
> >> re:replace("this*", "\\*", "!", [{return,list}, global, caseless])
> >>
> >>
> >> What other chars should I be looking for that need to be escaped?  The
> >> RE value comes in as a variable, so I will need to change any of these
> >> chars to escaped before using it in re:replace.
> >>
> >> thx,
> >>
> >> -wes
> >>
> >> ________________________________________________________________
> >> erlang-questions (at) erlang.org mailing list.
> >> See http://www.erlang.org/faq.html
> >> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
> >>
> >
> >
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
>


More information about the erlang-questions mailing list