1

我需要将两个 ipaddress 与正则表达式匹配:如 20.20.20.20

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)].*" 但它不适用于第一种和第三种情况。请帮助我使用这个正则表达式。

4

3 回答 3

2

您忽略了该行以 20.20.20.20 开头的情况:

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

似乎对我有用

于 2012-06-25T10:22:19.020 回答
0

你可以这样做:

select * from tablename
where ip = '20.20.20.20' or ip like 'http://20.20.20.20/%'
于 2012-06-25T10:02:47.303 回答
0

[^(\d)]没有量词意味着您期望恰好 1 个不是数字的字符使用[^(\d)]*将有所帮助

于 2012-06-25T10:04:41.300 回答