Подстановочные знаки соответствия регулярного выражения
У меня есть список около 120 тысяч английских слов (в основном, каждое слово в языке).
Мне нужно регулярное выражение, которое позволило бы искать по этим словам, используя символы подстановки, a.k.a.*
а также?
.
Несколько примеров:
if the user searches form?st*
, it would match for example master
or mister
or mistery
.
if the user searches for *ind
(any word ending in ind
), it would match wind
or bind
or blind
or grind
.
Теперь большинство пользователей (особенно те, кто не знаком с регулярными выражениями) знают, что?
является заменой ровно 1 символа, в то время как*
является заменой для 0, 1 или более символов. Я абсолютно хочу построить свою функцию поиска на основе этого.
Мои вопросы: Как я могу преобразовать то, что пользователь вводит (m?st*
например) к регулярному выражению?
Я искал в Интернете (очевидно, включая этот сайт), и все, что я мог найти, были учебники, которые пытались научить меня слишком многому или вопросы, которые были несколько похожи, но не достаточно, чтобы дать ответ на мою собственную проблему.
Все, что я мог понять, это то, что я должен заменить?
с.
, Такm?st*
становитсяm.st*
, Тем не менее, я понятия не имею, что заменить*
с.
Любая помощь будет принята с благодарностью. Спасибо.
PS: я совершенно новичок в регулярных выражениях. Я знаю, насколько они могущественны, но я также знаю, что их может быть очень трудно выучить. Так что я просто никогда не уделял этому времени ...