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