![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Общий паттерн нескольких строк [D7, WinXP]
sdubaruhnul © (2007-09-16 14:06:00)Нужно найти общий паттерн в нескольких строках, которые представляют собой имена файлов. Что конкретно подразумевается? Например, есть файлы:
test1_file1.txt
test2_file2.txt
test3_filesome.txt
Общим паттерном здесь будет строка test$1_file$2. Соответсвенно, символ $ - дело конвенциональное. И, скажем, $N - это только строка, т.е. не выделяю числа.
Идеи и представление, как это сделать при помощи автомата есть. Но хотелось бы услышать мнение Мастеров, куда здесь копать? Может у этой задачи есть другое название и готовые алгоритмы решения?
sdubaruhnul (2007-09-17 18:59:00) [21]> О на слабо пытаешь брать, как правило результат противоположный.
А я уже не надеюсь, поэтому констатирую. А вы, Анатолий, не могли бы ответить на [9]?
Anatoly Podgoretsky (2007-09-17 18:32:00) [22]> sdubaruhnul (17.09.2007 13:39:11) [11]
О на слабо пытаешь брать, как правило результат противоположный.
sdubaruhnul (2007-09-17 13:39:00) [23]Блин, как только запахло чем-то большим, чем xor, Мастера самоудалились.
Sha (2007-09-16 15:20:00) [24]1. Даешь определение общий паттерн
2. Даешь определение максимальный общий паттерн.
3. Решаешь задачу оптимизированным перебором (метод ветвей и границ)
sdubaruhnul (2007-09-16 15:13:00) [25]> Это уже другой вопрос, не совпадающий с первым
Можно подробнее? В чём отличие?
Anatoly Podgoretsky (2007-09-16 14:47:00) [26]> sdubaruhnul (16.09.2007 14:37:07) [7]
Это уже другой вопрос, не совпадающий с первым и реализация здесь сложная и чрезвычайно медленная, поскольку скользящая.
sdubaruhnul (2007-09-16 14:37:00) [27]Э-э, народ, вы не в ту степь поехали. Сформулирую задачу по-другому. Есть строки:
string123_hello123
stringTEST_helloTEST
Они попадают под wildcard маску string*_hello*. Вот эту маску мне и хотелось бы получить. При этом строк может быть более двух.
Сергей М. (2007-09-16 14:34:00) [28]
> Anatoly Podgoretsky © (16.09.07 14:32) [5]
Да, конечно к минимальной.
Эт я в другую крайность проглючил)
Anatoly Podgoretsky (2007-09-16 14:32:00) [29]> Сергей М. (16.09.2007 14:27:03) [3]
К минимальной?
Anatoly Podgoretsky (2007-09-16 14:32:00) [30]> sdubaruhnul (16.09.2007 14:19:02) [2]
Нет никакой необходимости делать это по разной длине, это 100% несовпадение, надо нормализовывать перед исполнением. Даже обычные сравнения строк сразу отсекаются по длине, как несовпадающие.
Сергей М. (2007-09-16 14:27:00) [31]
> Несовпадающие части могут быть разными по длине
Что мешает привести "подопытные" строки к единой (максимальной из имеющихся) длине, дополнив их при необходимоости, скажем, пробелами ?
sdubaruhnul (2007-09-16 14:19:00) [32]> Если сделать XOR то нулевые символы будут представлять собой совпадающую часть
Это слишком частное решение. Несовпадающие части могут быть разными по длине.
Anatoly Podgoretsky (2007-09-16 14:14:00) [33]> sdubaruhnul (16.09.2007 14:06:00) [0]
Если сделать XOR то нулевые символы будут представлять собой совпадающую часть.