正则表达式(regular express)

正则表达式(regular express):表示一段有规律的信息。

使用正则表达式有如下步骤。
(1)寻找规律。
(2)使用正则符号表示规律。
(3)提取信息。
1.1 正则表达式的基本符号
在这里插入图片描述

1.2在python中使用正则表达式
(1)findall的函数原型为:
re.findall(pattern, string , flags=0)
pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志(可忽略不写)。
findall的结果是一个列表,包含了所有的匹配到的结果。
如果没有匹配到的结果,返回空列表。如下例所示:
在这里插入图片描述

flags参数
函数原型中有一个flags参数,可以忽略不写的。
不省略时,具有一些辅助功能:忽略大小写、忽略换行符等。
flag.
要匹配的内容存在换行符,要忽略换行符就需要使用到“re.S”这个。
使用re.S作为flag来忽略换行符
在这里插入图片描述

(2)search :
search()的用法和findall()的用法一样,但是search()只会返回第一个满足要求的的字符串。一旦找到符合要求的内容,就会停止查找。
如果匹配成功,则是一个正则表达式的对象,如果没有匹配到任何数据,就是none。

(3)"." 和".?"区别:
“.":贪婪模式,获取最长的满足条件的字符串。
".
?”:非贪婪模式,获取最短的满足条件的字符串。
在这里插入图片描述

1.2正则表达式的提取技巧

(1)先抓大再抓小
一些无效内容和有效内容可能具有相同的规则。而我们想要的是有效内容,怎么实现呢?

有效书本:
正在读:Python
正在读:C++
正在读:C#

无效书本:
以前读:Ruby
以前读:JAVA

怎么实现 想要获得有效书本的名单
在这里插入图片描述
(2)括号内和括号外

*括号外面前后有其它字符,表示提取信息的开端和结尾,不包括在提取信息里。*括号里面前后有其它普通字符,表示提取信息的开端和结尾,包括在提取信息里
下例如下:
在这里插入图片描述

1.3 re.match与re.search与re.findall的区别:

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
在这里插入图片描述

1.4.1 使用re替换string中每一个匹配的子串后返回替换后的字符串。

格式:

re.sub(pattern, repl, string, count)
在这里插入图片描述

1.4.2 re.sub还允许使用函数对匹配项的替换进行复杂的处理。

如:re.sub(r’\s’, lambda m: ‘[’ + m.group(0) + ‘]’, text, 0);将字符串中的空格’ ‘替换为’[ ]’。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值