正则表达式(regular express)

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

使用正则表达式有如下步骤。
(1)寻找规律。
(2)使用正则符号表示规律。
(3)提取信息。
1.1 正则表达式的基本符号
正则表达式(regular express)

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

flags参数
函数原型中有一个flags参数,可以忽略不写的。
不省略时,具有一些辅助功能:忽略大小写、忽略换行符等。
flag.
要匹配的内容存在换行符,要忽略换行符就需要使用到“re.S”这个。
使用re.S作为flag来忽略换行符
正则表达式(regular express)

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

(3)"." 和".?"区别:
“.":贪婪模式,获取最长的满足条件的字符串。
".
?”:非贪婪模式,获取最短的满足条件的字符串。
正则表达式(regular express)

1.2正则表达式的提取技巧

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

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

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

怎么实现 想要获得有效书本的名单
正则表达式(regular express)
(2)括号内和括号外

*括号外面前后有其它字符,表示提取信息的开端和结尾,不包括在提取信息里。*括号里面前后有其它普通字符,表示提取信息的开端和结尾,包括在提取信息里
下例如下:
正则表达式(regular express)