From: Matt Rogers Date: 2013-08-02T04:31:39+09:00 Subject: Re: Using a Regexp in String#gsub in C On Thu, Aug 1, 2013 at 1:58 PM, Ammar Ali wrote: > You can create the string first (without slashes), then create the regexp > using the string, finally call gsub as usual, passing the regexp value. > > For example: > > VALUE pattern = rb_str_new2("some-pattern"); > VALUE regex = rb_reg_new_str(pattern, 0); > > Hope that helps, > Ammar > > Perfect, thanks! -- Matt > On Aug 1, 2013, at 1:03 AM, Matt Rogers wrote: > > Hi, > > I've got some code in C that makes a call to String#gsub via rb_funcall > > VALUE pattern = rb_str_new2(" "); > VALUE heading = rb_funcall(str, rb_intern("gsub"), 2, pattern, > rb_str_new2("-")); > > I'd like to get pattern to be a Regexp object so that I can replace > repeating whitespace, but the various things I've tried so far haven't > worked. I've tried: > > VALUE pattern = rb_str_new2("/\\s\\+/"); > > and > > VALUE pattern = RREGEXP(rb_str_new2("\\s\\+"))' > > > Would someone out there be able to help me out with this? > > Thanks > -- > Matt > >