Python正则表达式匹配ip地址实例,python正则表达式


本文实例讲述了正则表达式匹配ip地址实例。代码结构非常简单易懂。分享给大家供大家参考。

主要实现代码如下:

import re
reip = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')
  for ip in reip.findall(line):
    print "ip>>>", ip

希望本文所述对大家的Python程序设计有所帮助。


一个python 正则表达式

#!/usr/bin/env python3
# coding=utf-8

"""
parse ip and path
"""

import re

def checkpath(s):
express = r"(\d+\.\d+\.\d+\.\d+):(.+)"
mo = re.search(express ,s)
if mo:
ip = mo.group(1)
path = mo.group(2)
print('IP is %s, path is %s' % (ip, path))
return ip, path
else:
print ('The path you input is invalid')
return None

def test_checkpath():
assert checkpath('192.168.22.77:/home/adf') == ('192.168.22.77',
'/home/adf')
assert checkpath('192.168.22:/home/adf') is None
assert checkpath('192.168.22.77/home/adf') is None
assert checkpath('192.168.22.77:') is None

需要注意re module的用法。这个只是初步判断而已,如果真要判断IP地址合法性,单用这个还不行比如每组数字必须<255这个就没作判断。path部分允许什么,是否允许空值,可以再调整。大致用法供参考。

如果不需要考虑输入合法性,直接
ip, path = input_string.split(':')
就行了。
 

python正则表达式匹配字符串的问题?

完整代码: #!/usr/bin/python# -*- coding: utf-8 -*-
"""
Function:
python正则表达式匹配字符串的问题?

Author: Crifan LiVersion: 2012-12-08
Contact: admin at crifan dot com
"""

import re;
txt ="bn','dd_ff');xm_a([1,'zhangming',0,2,'yuwenjige','lishijige',1,0,3,1,0,0.999,1,1,0,0]);xm_a([2,'wangmeng',0,2,'shuxuejige','dilijige',1,0,3,1,0,0.999,1,1,1,0]);xm_a([3,'wangli',0,2,'shuxuejige','dilijige',1,0,2,0,0,0.999,1,1,1,0]);zuobi(6,3,'4:5');fg_gh('xxx','vb_4');xm_a([4,'dashan',0,2,'huaxuejige','yingyujige',1,0,3,1,1,0.999,0,1,0,0]);</";
#注:此处用到了 前向否定匹配#不了解的,可以参考:
#【教程】详解Python正则表达式之: (?!…) negative lookahead assertion 前向否定匹配 /前向否定断言
jige = re.findall("xm_a\(\[\d+,'(\w+)',[^\(\)\[\]]+\]\);(?!zuobi)", txt);
print jige; #['zhangming', 'wangmeng', 'dashan']

另外,感兴趣的,可以去看我写的系列的教程:
【教程】详解Python正则表达式

(此处不给贴地址,请自己用google搜标题,即可找到帖子地址)
 

评论关闭