/ / съвпадение на дълги низове (предимно сходни) с дълги низове - regex, алгоритъм, низ-съвпадение

съвпадащи дълги струни (предимно подобни) с дълги струни - регенерация, алгоритъм, съвпадение на низове

Опитвам се да намеря най-добрия начин за съвпадение иразпознава различни текстове за лицензи в рамките на файловете. Това са доста дълги многолинейни низове (понякога 2 страници с размер на буквата) и ако те съвпадат, те трябва да бъдат най-вече едни и същи, с изключение на няколко променливи (име, дата, нечетни нови линии, нечетни пространства). Моят въпрос е, какъв е най-добрият начин да се сравнят дългите низове в дори по-дълги низове? Оправдано ли е използването на редовни изрази за това (огромен regexp, който ще съдържа целия текст на лиценза с няколко заместващи символа за променливите елементи) има ли алгоритъм за търсене / съвпадение на низове, който да бъде специално адаптиран?

Отговори:

1 за отговор № 1

Прочети за Най-дълга обща подпоследователност от 2 струни. Алгоритъм базиран на Динамично програмиране


0 за отговор № 2

Повечето библиотеки с регулярни изрази са настроени да бъдатБързо на практика на редовни изрази, които хората обикновено пишат, понякога игнорирайки редките случаи, където можете да конструирате регулярни изрази, които ги карат да вземат ужасяващи количества време. Ако вашият модел не е един от ужасните специални случаи, вероятно няма значение колко време е, защото на практика повечето места, на които не успеят да съвпаднат с текста, могат да бъдат разпознати чрез проверка само на няколко символа от текст и модел, а тези несъответствия са мястото, където ще отмине времето.

Ако искате да сте сигурни в доброто представяне, азще търси единен низ от фиксиран текст (колкото е възможно по-голям), който трябва да съществува във всички форми на лиценза, да търси това в файловете и след това да провери отново няколкото случая на това по някакъв по-сложен начин, за да види дали са верни или не. Но е много вероятно това да се случи на практика, ако направите обикновен регекс търсене. Защо да не оставите изречението да се освободи от файловете или от подмножество от тях и да види колко време отнема?