我正在尋找一個位的代碼將:給定一個RE,獲得最大的子字符串匹配
Given regular expression E, derive the longest string X
such that for every S, X is a substring of S iff S will match E
例子:
E = "a", X = "a"
E = "^a$", X = "a"
E = "a(b|c)", X = "a"
E = "[ab]", X = ""
背景:我要匹配一些正則表達式僅支持子字符串搜索的數據存儲 。通過對數據存儲應用子串 來優化正則表達式搜索將會很好,以儘可能地減少傳輸的數據量 。
例子2:
如果我想趕上 「錯誤富」, 「錯誤酒吧」, 「錯誤巴茲」,我可能會指定
error: (foo|bar|baz)
和發送
search "error: "
到數據存儲,然後重新編譯返回的項目。
謝謝!
如果E =「a(b | c)def」,那麼X =「def」?沒有額外的信息,搜索「def」不會立即有幫助。 噢,所有這些「S =」都應該是「X =」? – 2009-07-01 06:02:42