我想知道是否有某種方式在PHP中進行模糊字符串匹配。在一串長串中尋找單詞,即使拼寫錯誤也能找到可能的匹配;如果由於OCR錯誤而導致某個字符被關閉,則會發現它。模糊文本搜索:正則表達式通配符搜索生成器?
我在想一個正則表達式生成器可能可以做到這一點。因此給予「瘋狂」會產生這樣的正則表達式的輸入:
.*((crazy)|(.+razy)|(c.+azy)|cr.+zy)|(cra.+y)|(craz.+)).*
它將然後返回所有匹配該單詞或詞語的變體。
如何建立發電機: 我可能會拆分搜索字符串/字成字符數組,並建立正則表達式表達做一個foreach新創建的數組替換鍵值(字母的位置在字符串中)加上「。+」。
這是做模糊文本搜索的好方法還是有更好的方法?對於某種字符串比較,根據它的接近程度給我一個分數呢?我試圖查看一些轉換不良的OCR文本是否包含一個簡短的單詞。
你的正則表達式是錯誤的 - 更換'+'和'.' – Amarghosh 2009-11-12 08:17:43
謝謝你的提示,固定的問題+ – mikeytown2 2009-11-12 09:01:17
'C + azy'將匹配'calksjdazy' - 'c'後跟一個或多個字符,後跟'azy'。對於單個字符,請使用'c.azy' – Amarghosh 2009-11-13 04:17:16