正则表达式
Payton 正则表达式 使用的re 模块。正则表达式在处理字符串的时候使用,用处很大。
元字符
正则表达式的描述。
7-2
^ 表示字符串是以什么字符开始,匹配每一行的开始。$ 表示以字符串以什么字符结束匹配每一行的结束。
7-4
查找字符串中的单词,以两个
第一个表示一个单词开始;
第二个 表示一直到一个单词结束;
stw* 表示这个这个单词是以st开始然后是任意的字母、数字、下划线字符最后是单词的结束
7-9
std{2}:表示这个单词以st开始然后是两个数字,最后是单词的结束。
7-10
{}中间的符合表示限定符
7-11
使用[] 表示[]内的任意一个字符都是匹配的。
如”[a-z]”表示a-z的任意一个字符均可以匹配,同理”[0-9]”表示任意一个数字。
7-12
也可以使用排除字符操作。如[^a-z]则表示a-z之外的任意字符。
表达式也可以使用条件表达或 |
“(d{1})|(d{2})” 每一表达式用() 限定其范围,然后用| 进行连接。
7-13
如果一个表达式的太多,使用\太麻烦,可以使用表达式字符串前面加r的方式解决。
7-14
1.match 方法
re.match(pattern,string,flag)
pattern:正则表达式的模式字符串;
string:要查找的字符串;
flag:可选参数:如是否区分字母大小写。
但是这个方法是从字符串的开始位置即第一个单词开始进行匹配。如果开始的位置不能匹配则不再进行查找直接返回none。比较适合查找字符串的起始字符是否符合要求的字符串。
7-1
7-3
2.search() 方法
re.search(pattern,string,[flags])
pattern:模式字符串;
string:要查找的字符串;
flags:同7-1
此方法是从字符串开始一直找到最后找到第一个匹配的字符,找到后返回match对象,否则返回None。
7-5
3.findall()方法
用于在字符串中从头到尾查找所有匹配表达式的字符串。找到的子串以列表的方式返回。
re.findall(patter,string,[flag])
参数同上面的函数一样。
7-6
4.替换字符串
sub()方法用于实现字符串替换。
re.sub(pattern,rep1,string,count,flags)
rep1:表示要被替换的字符串;
count:子串匹配后被替换的最大次数;
7-7
5.使用正则表达式分割字符串
re.split(pattern,string,[maxsplit],[flags])
maxsplit:最大的拆分次数
7-8