/ / узгодження довгих рядків (в основному подібних) з довгими рядками - регулярний вираз, алгоритм, відповідність рядків

збігаються довгі рядки (в основному аналогічні) з довгими рядками - регулярним виразом, алгоритмом, строковою відповідністю

Я намагаюсь знайти найкращий спосіб відповідати ірозпізнавати різні тексти ліцензій у файлах. Це досить довгі багаторядкові рядки (іноді 2 сторінки розміром із літер), і якщо вони відповідають, вони мають бути здебільшого однаковими, за винятком кількох змінних (ім'я, дата, непарні нові рядки, непарні пробіли). Моє запитання полягає в тому, який "найкращий спосіб зіставити довгі рядки в ще довших рядках? Чи виправданим є використання регулярних виразів (величезний регулярний вираз, який містив би весь текст ліцензії з кількома символами для змінних елементів) або чи існує алгоритм пошуку / узгодження рядків, який би був особливо адаптований?

Відповіді:

1 для відповіді № 1

Читати про Найдовше спільне підкріплення з 2 струн. Алгоритм на основі Динамічне програмування


0 для відповіді № 2

Більшість регулярних бібліотек виразів налаштовані на створенняШвидко на практиці типи регулярних виразів люди зазвичай пишуть, іноді ігноруючи рідкісні випадки, коли ви можете побудувати регулярні вирази, які викликають у них жахливу кількість часу. Якщо ваш візерунок не є одним із жахливих особливих випадків, він, ймовірно, не має значення скільки часу він триває, оскільки на практиці більшість місць, де він не відповідає тексту, можна розпізнати, перевіривши лише кілька символів текст і візерунок, і ці невідповідності - це куди йде час.

Якщо ви хочете бути впевнені в хорошій роботі, яшукав би єдиний рядок виправленого тексту (якомога більший), який повинен існувати у всіх формах ліцензії, шукати це у файлах, а потім повторно перевірити декілька подій цього більш складного способу, щоб побачити, чи справді вони правдиві відповідає чи ні. Але дуже ймовірно, що це майже все, що відбудеться на практиці, якщо ви будете робити звичайний пошук по регулярних виразів. Чому б не пустити ваш регулярний вираз на файли або на їх підмножину, і не побачити, скільки часу потрібно?