2012-06-25 91 views
1

我需要用正則表達式匹配兩個ip地址: 像20.20.20.20兩個IP地址匹配

should match with  20.20.20.20 
should match with  [http://20.20.20.20/abcd] 
should not match with 20.20.20.200 
should not match with [http://20.20.20.200/abcd] 
should not match with [http://120.20.20.20/abcd] 

目前我使用這樣的正則表達式:".*[^(\d)]20.20.20.20[^(\d)].*" 但它無法正常工作爲第一和第三個case.Please幫助我這個正則表達式。

回答

2

你忽略的情況下,一些 其中行開頭20.20.20.20:

"(.*[^(\d)]|^)20.20.20.20([^(\d)].*|$)" 

似乎爲我

0123工作
+0

感謝您的解決方案:) – user1479571

0

你可以這樣說:

select * from tablename 
where ip = '20.20.20.20' or ip like 'http://20.20.20.20/%' 
+0

你的解決方案是好的,但看看標籤,我認爲他想要一個正則表達式。 –

+1

@cad有可能,讓我們看看OP說的是什麼。 –

+0

你是對的,也許他可以將邏輯移動到查詢:) –

0

[^(\d)]沒有量詞意味着你能確切1個characer不是使用[^(\d)]*將有助於

+0

感謝您發現正則表達式的問題。它正在努力:) – user1479571