阜阳学校网站建设,现有的网站开发技术,WordPress的固态链接,服务推广网站摘要#xff1a;
正则表达式#xff0c;又称为规则表达式#xff0c;它不是某种编程语言所特有的#xff0c;而是计算机科学的一个概念#xff0c;通常被用来检索和替换某些规则的文本。 一.正则表达式的语法
①行定位符
行定位符就是用来描述字符串的边界。^
正则表达式又称为规则表达式它不是某种编程语言所特有的而是计算机科学的一个概念通常被用来检索和替换某些规则的文本。 一.正则表达式的语法
①行定位符
行定位符就是用来描述字符串的边界。^表示行的开始$表示行的结束。 ^tm # tm equal Tomorrow Moon可以匹配
tm$ # Tomorrow Moon equal tm可以匹配
tm # 两者都可以匹配 ②元字符
元字符说明.匹配除换行符以外的任意字符\w匹配字母、数字、下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或者结束^匹配字符串的开始$匹配字符串的结束 ③限制符
限定符说明举例?匹配前面的字符零次或一次colou?r,该表达式可以匹配color和colour匹配前面的字符一次或多次gogle该表达式可以匹配的范围从gogle到goo...gle*匹配前面的字符零次或多次go*gle该表达式可以匹配的范围从ggle到goo...gle{n}匹配前面的字符n次go{2}gle,该表达式只可匹配google{n,}匹配前面的字符最少n次go{2,}gle,该表达式可以匹配的范围从google到goo...gle{n,m}匹配前面的字符最少n次最多m次employee{02}该表达式可以匹配employ、employe和emploee三种情况 ④字符类
字符类是一种用于匹配指定字符集中的任意单个字符的模式。字符类被定义在方括号 [ 和 ] 之内。 基本字符类 [abc]匹配 a 或 b 或 c 中的任何一个字符。 [0-9]匹配任何数字等同于 \d。 排除字符类 [^abc] 或 [!abc]匹配除 a、b 和 c 之外的任何字符。 [^0-9]匹配任何非数字字符等同于 \D。 预定义字符类 \d等同于 [0-9]匹配任何数字。 \D等同于 [^0-9]匹配任何非数字。 \w匹配任何字母数字字符和下划线等同于 [a-zA-Z0-9_]。 \W匹配任何非字母数字字符和非下划线等同于 [^a-zA-Z0-9_]。 \s匹配任何空白字符包括空格、制表符、换页符等。 \S匹配任何非空白字符。 特殊字符 如果你想要匹配方括号 [ 或 ] 本身需要将它们放在字符类的开头或结尾或者用反斜杠 \ 转义。 其他特殊字符如点 .、加号 、问号 ?、星号 * 等在字符类中也失去了特殊意义可以直接使用。 示例
import re
text The quick brown fox jumps over the lazy dog 123.
pattern [a-z] # 匹配任何小写字母
matches re.findall(pattern, text)
print(matches) # 输出所有匹配的小写字母 二.使用re模板实现正则表达式操作
python提供了re模板用于实现正则表达式的操作。
在使用re模板时需要先应用import语句将其导入import re ①匹配字符串
匹配字符串可以使用re模块提供的match、search和findall等方法
1match方法
match方法用于从字符串的开始处进行匹配若成功则返回Match对象否则返回None。 语法形式
re.match(pattern,string,[flags])
pattern表示模式字符串由要匹配的正则表达式转换而来。
string表示要匹配的字符串。
flags可选参数表示标志位用于控制匹配方式。
标志说明A或ASCII对于\w、\W、\b、\B、\D、\s和\S只进行ASCII匹配I或IGNORECASE执行不区分字母大小写的匹配M或MULTITINE将^和$用于包括整个字符串的开始和结尾的每一行S或DOTALL使用.字符匹配所有字符包括换行符号X或VERBOSE忽略模式字符串中未转义的空格和注释 示例
import re
pattern rmr_\w
string MR_SHOP mr_shop
match re.match(pattern, string, re.I)
print(match)
string 项目名称MR_SHOP mr_shop
match re.match(pattern, string, re.I)
print(match)
2search方法
search方法用于在整个字符串中搜索第一个要匹配的值如果在起始位置匹配成功则返回Match对象否则返回None。 语法形式
re.search(pattern,string,[flags]) 示例
import re
pattern rmr_\w
string MR_SHOP mr_shop
match re.search(pattern, string, re.I)
print(match)
string 项目名称MR_SHOP mr_shop
match re.search(pattern, string, re.I)
print(match)
注意从上述例子可以看出search方法不仅仅是在字符串的起始位置处进行搜索还可以在其他位置处搜索有符合的匹配。 3findall方法
findall方法用于在整个字符串中搜索所有符合正则表达式的字符串并以列表的形式返回。如果匹配成功则返回包含匹配结构的列表否则返回空列表。 语法形式
re.findall(pattern,string,[flags])
示例
import re
pattern rmr_\w
string MR_SHOP mr_shop
match re.findall(pattern, string, re.I)
print(match)
string 项目名称MR_SHOP mr_shop
match re.findall(pattern, string)
print(match)
②替换字符串
sub方法用于实现字符串的替换。 语法形式
re.sub(pattern,repl,string,count,flags) 示例
import re
pattern r1[34578]\d{9}
string 中奖号码为84978987 联系电话为13611111111
result re.sub(pattern, 1xxxxxxxxxx, string)
print(result) ③使用正则表达式分割字符串
split方法用于实现根据正则表达式分割字符串并以列表的形式放回。 语法形式
re.split(pattern,string,[maxsplit],[flags]) 示例
import re
pattern r[?|]
url http://www.baidu.com?usernamemrpwdmrsoft
result re.split(pattern, url)
print(result)