好吧,夥計們,我真的傷害了我的大腦,而我很好奇,如果你們能給我任何指向我應該採取的正確方向。基於未知模式匹配無與倫比的字符串
的情況是這樣的:
比方說,我有一個字符串(讓它很清楚,這個字符串的模式是未知的一個事實,我可以說,該字符串只包含從招牌的集合。 ASCII表,因此,我不必擔心奇怪的中國標誌)。
在這個例子中,我把字符串的集合如下(注意,字符串不作任何人的感覺,所以不要嘗試盤算出來:)):
"[001].[FOO].[TEST] - 'foofoo.test'",
"[002].[FOO].[TEST] - 'foofoo.test'",
"[003].[FOO].[TEST] - 'foofoo.test'",
"[001].[FOO].[TEST] - 'foofoo.test.sample'",
"[002].[FOO].[TEST] - 'foofoo.test.sample'",
"-001- BAR.[TEST] - 'bartest.xx1",
"-002- BAR.[TEST] - 'bartest.xx1"
現在,我需要的是找到這組字符串的邏輯組(和子組),所以在上面的例子中,通過理性思考,你可以將前3個,後2個和後2個組合起來。從第5,得到的組可以在一個主組與2個亞類,這應該給你這樣的事情:
{
{
"[001].[FOO].[TEST] - 'foofoo.test'",
"[002].[FOO].[TEST] - 'foofoo.test'",
"[003].[FOO].[TEST] - 'foofoo.test'",
}
{
"[001].[FOO].[TEST] - 'foofoo.test.sample'",
"[002].[FOO].[TEST] - 'foofoo.test.sample'",
}
}
{
{
"-001- BAR.[TEST] - 'bartest.xx1",
"-002- BAR.[TEST] - 'bartest.xx1"
}
}
對不起,上面的佈局,但縮進4空格似乎並不正確(或我frakk'n它了)。
無論如何,我不知道如何解決這個問題(如何得到如上所示的結果)。
首先,我想創建一個龐大的正則表達式集,它可以解析大多數已知的模式,但是不同模式的數量只是巨大的,這是不現實的。
另一個想法是解析字符串中的每個單詞(所以去除所有非字母或數字字符並拆分),如果X%匹配,我可以假設這些字符串屬於同一組。 (其中X可能在80/90左右)。不過,我覺得這個投機領域有點大。例如,當匹配每20個單詞的字符串時,擊中80%以上的變化有點大(即4個單詞可以不同),但是隻匹配8個單詞時,最多可以有2個單詞不同。
我給你的問題是,在上述情況下,什麼是合乎邏輯的方法?
至於現實生活中的例子:
提前感謝!
歡呼你所有人,這些答案是一個好方法。我會馬上開始建立這些概念,謝謝! – Polity 2010-04-03 15:13:14
請稍後再回來讓我們知道你是怎麼做的! – 2010-04-18 20:56:56