У меня есть список около 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: Я совершенно не знаком с регулярными выражениями. Я знаю, насколько они могущественны, но я также знаю, что их очень сложно изучить. Так что я просто так и не успел сделать это...