Pyhthon之正则表达式

简介:

match 、 search、findall的区别

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

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


re.match

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


开头匹配不到则返回None

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


re.search

匹配到一次就停止

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


re.findall

findall返回的是列表

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


匹配不到则返回空列表

re
str=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的区别

先看一个示例

re
result = re.search(,)
result.group()
result.groups()
python re_test.py
123asdf234
('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,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
索引 Python
正则表达式详解
正则表达式详解
|
6月前
|
自然语言处理
正则表达式1
正则表达式
|
7月前
最全面的常用正则表达式大全
最全面的常用正则表达式大全
|
7月前
|
自然语言处理 数据安全/隐私保护
正则表达式
正则表达式
53 0
最全常用正则表达式大全
最全常用正则表达式大全
|
JavaScript 前端开发 Java
|
数据采集 机器学习/深度学习 移动开发
我学会了,正则表达式
爬虫是**非常的**的强大,相信不少朋友都有所耳闻,它帮助我们更快地“获得”我们所要关键数据。那么,它怎么知道我们要需要什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。
111 0
我学会了,正则表达式
|
Java 数据安全/隐私保护 Perl
常用的正则表达式大全
本文总结了常用的常用的正则表达式
135 0
常用的正则表达式大全
正则表达式(全)
正则表达式是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则的字符串。在表单验证、Url映射等处都会经常用到。
239 0
|
移动开发
【小技巧】正则表达式
正则表达式小技巧 1 空行替换 ^\r\n
519 0
下一篇
DataWorks