Я хотел бы написать служебную функцию / модуль, который будет обеспечивать простое сопоставление подстановочных знаков / глобусов для строк . Причина, по которой я не использую регулярные выражения, заключается в том, что пользователь будет тем, кто в конечном итоге предоставит шаблоны для сопоставления, используя какой-то файл конфигурации. Я не смог найти такой стабильный гем - попробовал joker, но у него возникли проблемы с настройкой.
Функциональность, которую я ищу, проста. Например, для следующих шаблонов вот совпадения:
pattern | test-string | match
========|=====================|====================
*hn | john, johnny, hanna | true , false, false # wildcard , similar to /hn$/i
*hn* | john, johnny, hanna | true , true , false # like /hn/i
hn | john, johnny, hanna | false, false, false # /^hn$/i
*h*n* | john, johnny, hanna | true , true , true
etc...
Я бы хотел, чтобы это было максимально эффективным. Я думал о создании регулярных выражений из строк шаблона, но во время выполнения это казалось неэффективным. Есть предложения по этой реализации? спасибо.
РЕДАКТИРОВАТЬ : Я использую ruby 1.8.7