Ruby: генерирование новых регулярных выражений из строк - PullRequest
11 голосов
/ 24 марта 2011

Есть ли способ конвертировать String в Regexp (в Ruby)? Допустим,

'example' ---> /example/

Моя цель - генерировать регулярные выражения динамически.

Ответы [ 3 ]

16 голосов
/ 24 марта 2011
regexp = Regexp.new(string)

или

regexp = /#{string}/

Если возможно, что string имеет специальные символы, то:

regexp = Regexp.new(Regexp.escape(string))

или

regexp = /#{Regexp.escape(string)}/
4 голосов
/ 24 марта 2011

Вы также можете написать ...

regex = Regexp.compile(string)

... это очень описательное имя.Этот метод компилирует исходный код (строку) в недетерминированный конечный автомат (регулярное выражение).Затем NFA можно многократно использовать.

2 голосов
/ 24 марта 2011

можно попробовать /#{your variable}/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...