В моей работе я с большими результатами использовал приближенные алгоритмы сопоставления строк, такие как расстояние Дамерау-Левенштейна, чтобы сделать мой код менее уязвимым для орфографических ошибок.
Теперь мне нужно сопоставить строки с простыми регулярными выражениями, такими как TV Schedule for \d\d (Jan|Feb|Mar|...)
. Это означает, что строка TV Schedule for 10 Jan
должна возвращать 0, а T Schedule for 10. Jan
должна возвращать 2.
Это можно сделать, создав все строки в регулярном выражении (в этом случае 100x12) и найдя наилучшее совпадение, но это не подходит для практического использования.
Есть ли у вас идеи, как это сделать эффективно?