博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyhthon之正则表达式
阅读量:5888 次
发布时间:2019-06-19

本文共 1572 字,大约阅读时间需要 5 分钟。

match 、 search、findall的区别

match从字符串的开头开始匹配,如果开头没有匹配到,search是从字符串任意位置开始匹配。

上面两个都是匹配到一个就停止匹配。findall是返回所有能匹配上的字符串列表

re.match

restr=result1 = re.match(,str)result1.group()
1
2
3
 
python re_test.py
<_sre.SRE_Match object at 0x10584fa58>
123

开头匹配不到则返回None

restr=result1 = re.match(,str)result1
1
2
python re_test.py
None

re.search

匹配到一次就停止

restr=result2 = re.search(, str)result2result2.group()
1
2
3
python re_test.py
<_sre.SRE_Match object at 0x108475a58>
123

re.findall

findall返回的是列表

restr=result3 = re.findall(,str)result3
1
2
python re_test.py
[
'123'
'123123'
]

匹配不到则返回空列表

restr=result3 = re.findall(,str)result3
1
2
 
python re_test.py
[]

re.compile

可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:

text = regx = re.compile()  regx.findall(text)
python re_test.py['JGood', 'cool']

group和groups的区别

先看一个示例

reresult = re.search(,)result.group()result.groups()
python re_test.py123asdf234('123', '234')

从上面的示例可以看出group会返回到正则表达式中所有的符合规则的内容,而groups只会返回分组(即括号括起来的为一组)中的内容。

正则表达式常用格式:

字符

\d:表示数字

\w:字母、数字、下划线、中横线

\t:制表符

. :除了回车以外的所有字符

次数

*:匹配前面的字符0次或者多次 相当于>=0

+:匹配前面的字符1次或者多次 相当于>=1

?:匹配前面的字符0次或者1次  

{m}:匹配前面的字符m次

{m,n}:匹配前面的字符至少m次,至多n次

正则表达式匹配IP地址

最简单的方法:

ip= = re.findall(,ip)
1
2
python re_test.py
[
'192.168.1.200'
]

改进后的方法:

ip=result=re.findall('(?:\d{1,3}\.){3}\d{1,3}',ip)result

思路:第一种方法中,"[0-9]{1,3}\."出现了三次,所以我们把这一串字符当做一个整体匹配3次即可


(?:pattern)  :表示非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式

本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1839630,如需转载请自行联系原作者
你可能感兴趣的文章
中南大学2014年数据结构考试真题及(个人解答)答案
查看>>
Educational Codeforces Round 63-D(基础DP)
查看>>
gradle
查看>>
wcf服务契约的重载
查看>>
数据帮助类DBhelper的定义
查看>>
基础命令
查看>>
linux下单节点oracle数据库间ogg搭建
查看>>
PLSQL Developer软件使用大全
查看>>
javaWebSerivice学习篇4-WSDL文档结构图
查看>>
swift三方库
查看>>
python自定义线程池
查看>>
坑到了,EF执行带事物的存储过程
查看>>
杭州之行
查看>>
函数式宏定义用do...while(0)的好处
查看>>
oracle ORA-00917: missing comma 是因为少逗号
查看>>
策略模式简介
查看>>
UIViewController中loadView的用法(应当注意的几点)
查看>>
POJ NOI0105-42 画矩形
查看>>
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>