python 正则表达式
2016-01-27 11:05
393 查看
在python中re模块支持正则表达式,主要的方法有:
search()
match()
findall()
compile()
sub()
subn()
group()
groups()
split()
complile
预编译正则表达式,编译调用的是方法,不编译,使用函数,但是名字都是相同的,如:
reg = r’(\d+)-(\d{3})-(\w+)’
pattern = re.compile(reg)
match()
匹配,从字符串的开头来对模式进行匹配
3.search
会扫描整个字符串并返回第一个成功的匹配
4.findall
返回所有的结果
Example:
1. 在开头,都能匹配到
结果:
match:
(‘123’, ‘456’, ‘abc’)
search:
(‘123’, ‘456’, ‘abc’)
findall:
[(‘123’, ‘456’, ‘abc’), (‘1116’, ‘66666’, ‘hhhh’)]
2.
结果:
match:
search:
(‘123’, ‘456’, ‘abc’)
findall:
[(‘123’, ‘456’, ‘abc’), (‘1116’, ‘66666’, ‘hhhh’)]
3.group() groups()
输出结果:
group
123-456-abc
group 1
123
groups
(‘123’, ‘456’, ‘abc’)
注:group() 输出的是匹配的整个字符串
group(num)输出第几个子组,也就是第几个括号匹配的
groups() 输出的是所有的子组的touple
4.sub和subn()进行搜索和替换
输出结果:
match:
zhu-abc-ert
zhu66-hhhh-sdsssssss
5.split
输出结果:
[”, ‘123’, ‘-‘, ‘456’, ‘-abc-ert\n ‘, ‘111’, ‘6-‘, ‘666’, ‘66-hhhh-sdsssssss\n ‘]
按照正则表达式来分隔
search()
match()
findall()
compile()
sub()
subn()
group()
groups()
split()
complile
预编译正则表达式,编译调用的是方法,不编译,使用函数,但是名字都是相同的,如:
reg = r’(\d+)-(\d{3})-(\w+)’
pattern = re.compile(reg)
match()
匹配,从字符串的开头来对模式进行匹配
3.search
会扫描整个字符串并返回第一个成功的匹配
4.findall
返回所有的结果
Example:
1. 在开头,都能匹配到
html = """123-456-abc-ert 1116-66666-hhhh-sdsssssss """ reg = r'(\d+)-(\d+)-(\w+)' pattern = re.compile(reg) print "match:" aaa = re.match(pattern ,html) if aaa is not None: print aaa.groups() print "search:" bbb = re.search(pattern,html) print bbb.groups() list = re.findall(pattern,html) print "findall:" print list
结果:
match:
(‘123’, ‘456’, ‘abc’)
search:
(‘123’, ‘456’, ‘abc’)
findall:
[(‘123’, ‘456’, ‘abc’), (‘1116’, ‘66666’, ‘hhhh’)]
2.
html = """:123-456-abc-ert 1116-66666-hhhh-sdsssssss """ reg = r'(\d+)-(\d+)-(\w+)' pattern = re.compile(reg) print "match:" aaa = re.match(pattern ,html) if aaa is not None: print aaa.groups() print "search:" bbb = re.search(pattern,html) print bbb.groups() list = re.findall(pattern,html) print "findall:" print list
结果:
match:
search:
(‘123’, ‘456’, ‘abc’)
findall:
[(‘123’, ‘456’, ‘abc’), (‘1116’, ‘66666’, ‘hhhh’)]
3.group() groups()
html = """123-456-abc-ert 1116-66666-hhhh-sdsssssss """ # reg = 'href=([\"|\']{0,1})([^javascript]*?)([\"|\'|>])' reg = r'(\d+)-(\d+)-(\w+)' pattern = re.compile(reg) print "match:" aaa = re.match(pattern ,html) print "group" print aaa.group() print "group 1" print aaa.group(1) print "groups" print aaa.groups()
输出结果:
group
123-456-abc
group 1
123
groups
(‘123’, ‘456’, ‘abc’)
注:group() 输出的是匹配的整个字符串
group(num)输出第几个子组,也就是第几个括号匹配的
groups() 输出的是所有的子组的touple
4.sub和subn()进行搜索和替换
html = """123-456-abc-ert 1116-66666-hhhh-sdsssssss """ # reg = 'href=([\"|\']{0,1})([^javascript]*?)([\"|\'|>])' reg = r'\d+?' pattern = re.compile(reg) print "match:" aaa = re.sub(r"(\d+?)-(\d{3})","zhu",html) print aaa
输出结果:
match:
zhu-abc-ert
zhu66-hhhh-sdsssssss
5.split
html = """123-456-abc-ert 1116-66666-hhhh-sdsssssss """ # reg = 'href=([\"|\']{0,1})([^javascript]*?)([\"|\'|>])' reg = r'\d+?' pattern = re.compile(reg) print "match:" aaa = re.sub(r"(\d+?)-(\d{3})","zhu",html) print re.split(r"(\d{3})",html)
输出结果:
[”, ‘123’, ‘-‘, ‘456’, ‘-abc-ert\n ‘, ‘111’, ‘6-‘, ‘666’, ‘66-hhhh-sdsssssss\n ‘]
按照正则表达式来分隔
相关文章推荐
- 深度学习(九)caffe预测、特征可视化python接口调用
- python学习之数据类型转换及数据操作
- python图像数组操作与灰度变换
- 惊喜Python 3.3后的pydoc功能
- python基础:自定义函数
- python之爬虫
- Python--递归和快速排序 -- quickSort
- python的range()函数用法
- Win7下Python操作MySQL步骤
- Python 列表(list) 总结
- 利用Python抓取和解析网页(转载)
- SDK自动化测试中利用python脚本修改手机系统时间
- Python抓取京东图书评论数据
- Python之控制台输入密码的方法
- python中类变量,成员变量
- python类中self是什么
- Python字典 dict
- Python正则表达式之基础篇
- Python正则表达式之基础篇
- Python图像灰度变换及图像数组操作