Issue #13048 has been updated by Shyouhei Urabe.


We looked at this issue at yesterday's developer meeting.

While looking at "Regexp.new Regexp.escape" search result of GitHub, we felt in common that some (if not most) of those usage are questionable.  For instance multiple copies of String#to_regexp implementations specify Regexp::IGNORECASE along with the escaped text; which does not immediately make sense to me.  There are other use cases in tests.  Because they are written in their own DSLs, why not have custom matcher that escape strings appropriately.

Nobody was against adding this functionality but I think more closer look at use cases would give us better insight of the needs.

----------------------------------------
Feature #13048: Better way to do Regexp.new(Regexp.escape("some string"))
https://bugs.ruby-lang.org/issues/13048#change-62600

* Author: Colin Fulton
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
It is relatively common to call `Regexp.new(Regexp.escape("some string"))` or `Regexp.new(Regexp.quote("some string"))` in Ruby (a quick search turns up over half a million matches in Github). However, these seems rather cumbersome. It would be nice to have a class instance method on `Regexp` and/or an instance method on `String` to go directly to an escaped regular expression.

Personally I'd rather see `#to_regexp` added to `String`. This would not overlap with the functionality that `Rexexp.new("string")` provides since that doesn't quote the `String`.

It would also be good to see [9846](https://bugs.ruby-lang.org/issues/9846) addressed along with this request so one could more easily duck type a method to accept both `Regexp` and `String` arguments.

Thoughts?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>