Ruby: You can nest regular expressions

Posted . Visible to the public. Repeats.

Ruby lets you re-use existing RegExp objects by interpolating it into new patterns:

locales_pattern = /de|en|fr|es/i

html_tag_pattern = /<html lang="#{locales_pattern}">/

Any modifiers like /i or /x will be preserved within the interpolated region, which is pretty cool. So in the example above only the interpolated locales are case-insensitive, while the pattern around it (/<html .../) remains case-sensitive.

Henning Koch
Last edit
Henning Koch
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2021-09-29 09:28)