码迷,mamicode.com
首页 > 其他好文 > 详细

re模块(正则表达式)

时间:2019-01-04 22:35:39      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:hda   结果   ssi   ccf   文本   灵活   就会   spl   arc   

正则表达式(Regular Experssion)是对字符串操作的一种逻辑公式. 简称regex或re

优点 : 灵活, 功能性强, 逻辑性强

缺点 : 上手难. 

工具 : 各大文本编辑器一般都有正则匹配功能,也可以去http://tool.chinaz.com/regex/进?行行在线测试. 

1. 字符组 [a-zA-Z0-9] 

2. 简单元字符(常用)

.     匹配除换行符以外的任意字符
\w    匹配字母或数字或下划线
\s    匹配任意空白符
\d    匹配数字
\n    匹配一个换行符
\t    匹配一个制表符
\b    匹配一个单词的结尾
^     匹配字符串的开始
$     匹配字符串的结尾
\W    匹配非字母或数字或下划线
\D    匹配非数字
\S    匹配非空白符
a|b   匹配字符a或字符b
()    匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...]匹配除了字符组中的字符的所有字符

3.量词(一次性匹配多个字符)

*    重复0次或者更多次
+    重复1次或者更多次
?    重复0次或者1次
{n}  重复n次
{n,} 重复n次或者更多次
{n,m}重复n到m次

4.惰性匹配和贪婪匹配

在量词中的 * , + , {} 都属于贪婪匹配.尽可能匹配到多的结果

.*? 则是尽可能少匹配,表示惰性匹配. 例: .*?x 是找到下一个x位置

5.分组       正则中使用()进行分组. 

6. 转义   特殊意义的元字符如\n或者\s,如果需要匹配对应的字符串,需要对\进行转义.由于Python中的特殊字符也需要转义,比较复杂,因此使用 r‘\n‘即可,这是只需要正则表达式内部转义即可r‘\\n‘   →  ‘\n‘

re模块

re模块是python提供的一套关于处理正则表达式的模块.核心功能有四个:

1.findall 查找所有.返回list

import re
lst = re.findall(a , happy birthday!!)
print(lst)               #[‘a‘, ‘a‘]
lst = re.findall(r\d+ , 5apple6banana)
print(lst)                #[‘5‘, ‘6‘]

2.search 会进行匹配.但如果匹配到了第一个结果,就会返回这个结果.如果匹配不到search返回的则是None

ret = re.search(a,happy birthday!!) #<re.Match object; span=(1, 2), match=‘a‘>
print(ret)  #a

3.match 只能从字符串的开头进行匹配

import re
ret = re.match(a,apply apple).group()
print(ret)   #a

4.finditer 和 findall差不多.只不过返回的是迭代器

import re
it = re.finditer(\d , apple6 banana7)
for el in it:
    print(el.group(), end= ) #6 7 

5.其他操作

ret = re.split([ab], qwerafjbcd)  # 先按a分割,再按b分割
print(ret)  # [‘qwer‘, ‘fj‘, ‘cd‘]

ret = re.sub(r"\d+", "_a_", "alex250ta")  # 把字符串中的数字换成_a_
print(ret)   #alex_a_ta

ret = re.subn(r"\d+", "_a_", "alex250ta")  # 把字符串中的数字换成_a_返回元组包含次数
print(ret)    #(‘alex_a_ta‘, 1)

obj = re.compile(r\d{3})    #将这则表达式编译成正则表达式对象
ret = obj.search(abc123eeee)    匹配字符串
print(ret.group())     #123

re模块(正则表达式)

标签:hda   结果   ssi   ccf   文本   灵活   就会   spl   arc   

原文地址:https://www.cnblogs.com/gracenana/p/10222753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!