Special characters within [] in a regexp

What characters have to be escaped within a [] in a regular
expression? I was a bit taken aback by the following:

irb(main):001:0> a = '!#$%^&(()_GHF$%#$^%&;2~)+|{}|{\’
=> "!#$%^&(()_GHF$%#$^%&;2~
)+|{}|{\"
irb(main):002:0> a.gsub(/[[email protected]#$%^&+={}|\]/, ‘_’)
SyntaxError: compile error
(irb):2: parse error, unexpected $undefined.
a.gsub(/[[email protected]#$%^&
+={}|\]/, ‘’)
^
(irb):2: parse error, unexpected $undefined.
a.gsub(/[[email protected]#$%^&*+={}|\]/, '
’)
^
(irb):2: parse error, unexpected ‘)’, expecting $
from (irb):2
irb(main):003:0> a.gsub(/[[email protected]#$%^&+={}|\]/, '’)
=> "
#$(()__GHF$#$;2~__)_____"
irb(main):004:0> a.gsub(/[[email protected]#$%^&
+={}|\]/, '’)
=> "
(()GHF______;2~__)__"

martin

Martin DeMello wrote:

(irb):2: parse error, unexpected $undefined.
Hi. You don’t need braces to interpolate global variables. “#$%” tries
to interpolate special variable $%.

On 8/15/06, Carlos [email protected] wrote:

        ^

(irb):2: parse error, unexpected $undefined.

Hi. You don’t need braces to interpolate global variables. “#$%” tries
to interpolate special variable $%.

Oh! Okay, I get it now :slight_smile: Thanks.

martin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs