【问题标题】:Two IP Address match两个 IP 地址匹配
【发布时间】:2012-06-26 13:53:06
【问题描述】:

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

【问题讨论】:

    标签: sql regex ip-address


    【解决方案1】:

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

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

    似乎对我有用

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

      【讨论】:

      • 您的解决方案还可以,但查看标签我认为他想要一个正则表达式。
      • @cad 有可能,让我们看看 OP 怎么说。
      • @aF 感谢您的解决方案。我需要正则表达式。
      【解决方案3】:

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

      【讨论】:

      • 感谢您发现正则表达式的问题。它正在工作 nw :)
      猜你喜欢
      • 1970-01-01
      • 2019-06-03
      • 2011-02-11
      • 2012-07-01
      • 2022-03-03
      • 2012-12-13
      • 2018-05-17
      • 2019-06-30
      • 2021-06-23
      相关资源
      最近更新 更多