Python - 检查ip地址(之后没有任何内容)

时间:2017-04-03 08:36:57

标签: python regex

我试图创建一个Python(2.7)函数,该函数将接受一个字符串,如果其输入是一个ip地址,则返回true,最后可能带有斜杠,否则返回false。 如果字符串不仅仅是一个ip地址,而是一个ip地址,后跟某种路径,它需要返回一个false值。 如果地址是有效IP并不重要(999.999.999.999可以被认为是该地址的IP地址)。

例如: " 124.131.141.248" - 是的 " 124.131.141.248 /" - 是的 " 124.131.141.248/bla" - 假 "你好世界" - 假

我尝试过寻找解决方案,但大多数解决方案只包括检查有效的IP地址,而忽略了我的其他需求。

任何帮助都将不胜感激。

谢谢,

2 个答案:

答案 0 :(得分:0)

这似乎有效:

import re
def valid_ip(ip):
    if re.match(r'(\d+\.?){4}\\?$', ip):
        return True
    else:
        return False

答案 1 :(得分:0)

使用简单的正则表达式很容易解决:

import re
pattern = re.compile("\d{3}\.\d{3}\.\d{3}\.\d{3}(\/)?$")
string1 = "124.131.141.248"
string2 = "124.131.141.248/"
string3 = "124.131.141.248/bla"
string4 = "hello world" 
print(pattern.match(string1)!=None) # true
print(pattern.match(string2)!=None) # true
print(pattern.match(string3)!=None) # false
print(pattern.match(string4)!=None) # false

Here一个正在运行的例子。