oniguruma : can't get it to search for \ (backslash)

D

Dean Holdren

I can't seem to get Oniguruma to look for a single backslash, am I
doing anything wrong here?:

I should be able to escape the single with another:
irb(main):043:0> reg = Oniguruma::ORegexp.new('\\')
ArgumentError: Oniguruma Error: end pattern at escape
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:177:in
`old_initialize'
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:177:in `initialize'
from (irb):43:in `new'
from (irb):43
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:359

For arguments sake, with just one backslash:
irb(main):044:0> reg = Oniguruma::ORegexp.new('\')
irb(main):045:1'
(with just one back-slash, irb sees unfinished syntax)

Same if I use double-quotes:
irb(main):046:0> reg = Oniguruma::ORegexp.new("\\")
ArgumentError: Oniguruma Error: end pattern at escape
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:177:in
`old_initialize'
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:177:in `initialize'
from (irb):46:in `new'
from (irb):46
from /usr/local/lib/ruby/site_ruby/1.8/oniguruma.rb:359

Double quotes with just one backslash:
irb(main):047:0> reg = Oniguruma::ORegexp.new("\")
irb(main):048:1"
 
D

Daniel Lucraft

Dean said:
I can't seem to get Oniguruma to look for a single backslash, am I
doing anything wrong here?:

I should be able to escape the single with another:
irb(main):043:0> reg = Oniguruma::ORegexp.new('\\')
ArgumentError: Oniguruma Error: end pattern at escape

In a regex literal a backslash is a metacharacter, so you need two
slashes to match a slash: /\\/ But to insert two consecutive slashes in
a string to be compiled into a regex, you need four slashes: "\\\\"

Observe:

irb> reg = Oniguruma::ORegexp.new('\\\\')
=> /\\/

best,
Dan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top