Кто-нибудь знает, как можно адаптировать дерево поиска для обработки ограниченных регулярных выражений? Задача, с учетом имени файла, найти все узлы, соответствующие этому имени файла. Узлы могут содержать обычные имена файлов globs (* и?). Очевидно, что поскольку это дерево поиска, скорость имеет значение.Дерево поиска регулярного выражения (glob)
EDIT: Я должен добавить, что самым важным случаем для скорости является среднее время, чтобы исключить совпадение. То есть, в большинстве случаев совпадение не будет выполнено.
Пример: Скажем, дерево содержит следующие узлы:
Foo, Bar, Foo *, * бар, Foo
запретитьПоиск Foo будет возвращать узлы 1 и 3. При поиске бар? вернет узлы 2 и 4. Поиск фоба не возвратит ни одного узла. Поиск fooxbar вернет узел 5. Поиск foobar вернет узлы 3 и 4.
Является ли это обратной проблемой (регулярного выражения): соответствие, если строка принадлежит к обычному языку или нет? – dirkgently
Можете ли вы дать нам образец ввода/вывода? – dirkgently
Пример: скажем, что дерево содержит следующие узлы: foo, bar, foo *, * bar, foo? Bar Для любой строки (например, foo, foobar, fooxbar, fob и т. Д.), Быстро найдите узел (s), если таковые имеются, которые соответствуют этой строке. –