Actions
Feature #20266
openNew syntax to escape embed strings in Regexp literal
Feature #20266:
New syntax to escape embed strings in Regexp literal
Status:
Open
Assignee:
-
Target version:
-
Description
Premise¶
When using embed strings in Regexp literal, it is interpreted as a part of the Regexp.
foo = "[a-z]"
p /#{foo}/ #=> /[a-z]/
So, currently we often have to escape the embed strings.
foo = "[a-z]"
p /#{Regexp.quote(foo)}/ #=> /\[a\-z\]/
This is very long and painful to write every time.
So, I propose new syntax to escape embed strings automatically.
Proposal¶
Adding new token #{= in Regexp literal:
foo = "[a-z]"
p /#{=foo}/ #=> /\[a\-z\]/
When #{= is used instead of #{, ruby calls Regexp.quote internally.
Compatibility¶
Current ruby causes syntax error when using #{=, then there is no incompatibilty.
Out of scope of this proposal¶
I do not propose about #{= in another literals. They are out of scope of this proposal.
Actions