代码之家  ›  专栏  ›  技术社区  ›  Golan Kiviti

python-regex IP,不以点开头或结尾

  •  0
  • Golan Kiviti  · 技术社区  · 6 年前

    我有一个找到IP的regex:

    '[0-9]+(?:\.[0-9]+){3}'
    

    现在我需要让一个IP失败,如果它以一个点开始或结束。 例如,这些将失败:

    - .1.1.1.1
    - 1.1.1.1.
    - 1.1.1.1.1
    - 1.11.1.1.1
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Gurmanjot Singh    6 年前

    试试这个正则表达式:

    (?<!\.)(?:[0-9]+(?:\.[0-9]+){3})(?!\.)
    

    Click for Demo

    说明:

    • (?<!\.) -反向查找以确保IP模式前面没有 .

    • (?:[0-9]+(?:\.[0-9]+){3}) -和你的模式一样

    • (?!\.) -负展望以确保IP模式后面没有 .

    另外,请注意,如果需要,ip模式也可以改进。

    更新

    根据您的评论,这里是更新的regex(我刚刚添加了单词边界,以涵盖您提供的情况):

    (?<!\.)\b\d+(?:\.\d+){3}\b(?!\.)