我試圖找到匹配和識別文件內不同許可證文本的最佳方法。這些是非常長的多行字符串(有時是2個字母大小的頁面),如果匹配,它們應該大部分是相同的,除了少數變量(名稱,日期,奇數新行,奇數空格)。 我的問題是,在甚至更長的字符串中匹配長字符串的最佳方式是什麼?是否正則表達式的使用是正確的(一個巨大的正則表達式,其中包含整個許可證文本和可變元素的幾個通配符)?還是有一個字符串搜索/匹配算法,將特別適應?與長字符串匹配的長字符串(大部分類似)
0
A
回答
1
閱讀關於Longest common subsequence的2個字符串。基於Dynamic programming
0
大多數正則表達式庫算法調整要快於對各種各樣的正則表達式的人一般都是寫的實踐中,有時會忽略罕見的情況下,您可以構建的正則表達式的原因他們採取可怕的大量的時間。如果你的模式不是可怕的特殊情況之一,那麼它的持續時間可能並不重要,因爲在實踐中,大多數不符合文本的地方可以通過檢查文字和圖案,而這些不匹配是時間的推移。
如果您想確保良好的性能,我會尋找必須存在於所有許可證形式中的固定文本(儘可能大)的單個字符串,在文件中搜索此內容,然後重新檢查以更復雜的方式查看是否真實匹配的少數情況。但是,如果你進行普通的正則表達式搜索,這很可能在實踐中會發生什麼。爲什麼不讓你的正則表達式在文件或其子集上鬆動,並看看需要多長時間?
相關問題
- 1. 將較長的字符串與較短的字符串匹配
- 2. 與最大長度字符串類型
- 3. 兩個大字符串中的部分字符串匹配
- 4. 字符串部分匹配
- 5. 加密字符串以匹配原始字符串的長度
- 6. perl:字符串匹配找到最長的子字符串
- 7. 匹配恆定長度的字符串?
- 8. 匹配長度與相同長度的字符串列表
- 9. 甲骨文:獲取部分字符串匹配的長度
- 10. 字符串匹配時間戳長階
- 11. 如何匹配長字符串?
- 12. 與Python部分字符串匹配
- 13. 與LINQ/C部分字符串匹配#
- 14. 如果字符串較長,Perl regexp部分匹配?
- 15. 將字符串的一部分與其他字符串的部分匹配
- 16. 字符串的長度比字符串的長度長
- 17. 長字符串
- 18. 與字符替換可變長度字符串匹配原始字符串長度
- 19. 提取長字符串的一部分。
- 20. 近似字符串匹配
- 21. 將可變長度字符串分配給固定長度字符串
- 22. 拆分長字符串WP7
- 23. 字符串自動填充靜態字符匹配字符串長度
- 24. 字符串字符串Clob類型的字符太長
- 25. JAVA最長模式匹配字符串與換行符
- 26. 提取部分匹配兩個子字符串的字符串
- 27. Python的 - 遍歷字符串和組部分匹配字符串
- 28. 用粗體字符串替換部分匹配的字符串
- 29. 字符串拆分/字符串替換基於字符長度
- 30. MySQL選擇匹配字符串的最大長度
您可以嘗試使用在兩個文本之間創建差異的算法。 – svick