У меня есть список около 120 тысяч английских слов (в основном каждое слово на языке).
Мне нужно регулярное выражение, которое позволит искать эти слова с использованием символов подстановочных знаков, a.k.a. *
и ?
.
Несколько примеров:
- Если пользователь ищет
m?st*
, он будет соответствовать, например,master
илиmister
илиmistery
. - если пользователь ищет
*ind
(любое слово, заканчивающееся наind
), оно будет соответствоватьwind
илиbind
илиblind
илиgrind
.
Теперь большинство пользователей (особенно те, кто не знаком с регулярными выражениями) знают, что ?
заменяет ровно 1 символ, а *
заменяет 0, 1 или более символов. Я абсолютно хочу создать свою функцию поиска на основе этого.
Мои вопросы: Как преобразовать то, что пользователь набирает (m?st*
например), в регулярное выражение?
Я искал в Интернете (очевидно, включая этот веб-сайт), и все, что я мог найти, было учебниками, которые пытались научить меня слишком много или вопросы, которые были несколько похожи, но недостаточно, чтобы дать ответ на мою собственную проблему.
Все, что я мог понять, это то, что мне нужно заменить ?
на .
. Итак, m?st*
становится m.st*
. Однако я понятия не имею, что заменить *
на.
Любая помощь будет принята с благодарностью. Спасибо.
PS: Я совершенно не знаком с регулярными выражениями. Я знаю, насколько они могущественны, но я также знаю, что их очень сложно изучить. Так что я просто так и не успел сделать это...