正则表达式与pythonRE库的使用

1-正则表达式

正则表达式(Regular Expression):用于一种语法格式简洁表达一组字符串。正则表达式在处理文本中非常有用,识别病毒,字符串匹配等等。

2-正则表达式常用操作符。

操作符作用
.用于表示一个任意的字符
[ ]表示一个在范围内的任意字符,例如[a-z]表示a-z的任意一个字符
[^]表示一个不在范围内的任意字符
*前一个字符0次或者无限次扩展,例如abc *表示ab或者abc或者abcc等等
+前一个字符1次或者无限次扩展
?前一个字符0次或者1次扩展
|
{m}表示扩展前一个字符(包括前一个)m次,例如ab{3}c表示abbbc
{m,n}表示扩展前一个字符m到n次
^表示字符串的开头,例如,^abc 表示为abc且是一个字符串的开头
$表示字符串的结尾,例如 abc$
( )分组标记,内部只能使用 | 符号,例如(abc | def)
\d表示数字0-9
\w表示符号A-Z,a-z,0-9

3-经典正则表达式


表示由26个字母组成的任意字符串,^和$表示字符串的首尾匹配,表明这个是用来表示匹配字符串

^[A-Za-z]+$

表示由26个字母和数字组成的任意字符串

^[A-Za-z0-9]+$

表示整数形式的字符串

^-?\d+$

使用了UTF-8编码表示中文字符

[\u4e00-\u9fa5]

4-Python标准库re库

功能函数函数参数函数作用
re.search()pattern,string,flag=0搜索待匹配字符串中第一个匹配的字符串
re.match()pattern,string,flag=0从待匹配的字符串的头开始匹配第一个匹配的字符串
re.findall()pattern,string,flag=0搜索字符串,以列表类型返回全部符合条件的子串
re.split()pattern,string,maxsplit=0,flag=0字符串匹配并分割
re.finditer()pattern,string,flag=0迭代匹配所有子串
re.sub()pattern,repl,string,count=0,flag=0将匹配到的字符串替换成指定字符串

参数解释

pattern表示正则表达式的字符串

string待匹配的字符串

flag控制标记,默认0,可选控制标记有:
- re.I 忽略大小写匹配
- re.M ^操作符是表示从字符串的开头开始匹配,使用了re.M的标记之后可以从每行的字符串开头开始匹配
- re.S .操作符默认匹配除换行符外的所有字符,使用该标记后,也适用于换行符。

maxsplit通俗的理解就是从字符串首部开始匹配出maxsplit个pattern,然后将匹配的这几个挖掉,原字符串就变成maxsplit+1份了。

repl用于替换匹配到的子串

count表示替换的最大个数,默认为0表示全部替换

5-re库使用技巧

5-1-调用两种方法:

简单调用

s = re.match(r'\d+','123abc')

面向对象调用

s = re.compile(r'\d+')
m = s.match('123abc')
5-2-匹配原则

贪婪匹配,匹配第一个符合条件且最长的字符串

ss = re.search(r'p.*y','psyxxy')

输出结果ss.group(0) = ‘psyxxy’


最小匹配,匹配第一个符合条件切最短的字符串

ss = re.search(r'p.*?y','psyxxy')

输出结果ss.group(0) = ‘psy’

**通过添加?操作符进行最小匹配和贪婪匹配切换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值