当前位置: 首页 > 面试题库 >

使用正则表达式在python中进行IP地址验证

强承望
2023-03-14
问题内容

在下面的IP地址验证中,我想查看它是否为有效的IP地址,我该如何使用以下内容

>>> ip="241.1.1.112343434" 
>>> aa=re.match(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^0-9]",ip)
>>> aa.group()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

问题答案:

请改用锚点:

aa=re.match(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$",ip)

这些确保字符串的开头和结尾在正则表达式的开头和结尾匹配。(嗯,从技术上讲,您不需要起始^锚,因为它在.match()方法中是隐式的)。

然后,在尝试访问其结果之前,检查正则表达式是否确实匹配:

if aa:
    ip = aa.group()

当然,这不是验证IP地址的好方法(请查看gnibbler的答案以找到合适的方法)。但是,正则表达式可用于检测较大字符串中的IP地址:

ip_candidates = re.findall(r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b", ip)

在这里,\b单词边界锚确保每个段的数字不超过3。



 类似资料:
  • 它工作得很好,但是当我给出这样的值时,它也返回true..这怎么解决?

  • 本文向大家介绍javascript使用正则表达式检测IP地址,包括了javascript使用正则表达式检测IP地址的使用技巧和注意事项,需要的朋友参考一下 正则表达式: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[

  • 问题内容: 我有几个IP地址,例如: 如果要搜索所有3个ip地址,应该写哪种类型的正则表达式?例如,如果我这样做(我将能够搜索所有3个IP地址) 我现在可以做的事情是这样的:但是它似乎不能很好地工作。 谢谢。 问题答案: 您所拥有的正则表达式已经有几个问题: 首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。 其次,

  • 本文向大家介绍js正则表达式验证邮件地址,包括了js正则表达式验证邮件地址的使用技巧和注意事项,需要的朋友参考一下 我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用JavaScript语言实现一下电子邮件地址验证程序,用的是JavaSc

  • 问题内容: 在一个应用程序中,我得到了包含IP地址的字符串,但是这些字符串没有精确的格式。我们所知道的是,这些字符串可能包含IP地址。 这是字符串的示例: “ XPSPort” “ IP_10.29.167.187” “ 10.29.166.193” 我想获得一个Java代码,如果有一个Java代码,则提取该字符串的IP地址;如果该字符串不包含IP地址,则返回“”。 我尝试了这段代码,但它不起作用

  • 本文向大家介绍jquery使用正则表达式验证email地址的方法,包括了jquery使用正则表达式验证email地址的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery使用正则表达式验证email地址的方法。分享给大家供大家参考。具体实现方法如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://