python初学

python正则表达式

2020-09-14  本文已影响0人  Margolu

re模块

re.match从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则返回None,使用group()获取匹配成功的字符串

语法:re.match(pattern,string,flags=0)

参数说明:

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等.flag可选标志位

re.I:使匹配对大小写不敏感

re.L:做本地化识别匹配

re.M:多行匹配,影响^和$

re.S:使.匹配包括换行在内的所有字符

match只能匹配以‘xxx’开头.

使用group(num)或groups()匹配对象函数来获取匹配表达式

常用的匹配规则-匹配字符

.匹配除了换行符以外的任意一个字符

[abc]匹配中括号中集合的任意一个字符,a或b或c

扩大选择范围[a-z]即可匹配任意一个小写英文字母同理[A-Z]匹配任意一个大写英文字母

\d匹配一个数字,即0-9

\s匹配一个空白字符或tab键,\S匹配一个非空白字符

\w匹配单词字符,即a-z,A-Z,0-9,\W匹配一个非单词字符,比如_,空格

常用的匹配规则-匹配字符数量

*匹配前一个字符出现0次或者无限次,即可有可无

+匹配前一个字符出现一次或无限次,即至少一次

比如使用一个表达式检验字符串是否符合Python变量命名标准(不能以数字开头,只能包含数字字母下划线)

?匹配前导字符出现0次或1次

{m}精确匹配前一个字符出现m次

{m,}匹配前一个字符至少出现m次

{min,max}匹配前导字符出现从min到max次,min和max都是非负整数

验证163邮箱正则表达式demo

常用的匹配规则-原生字符串

\,用\\来输出\

r'xxx'表示原样输出,不进行转意

^匹配字符串开头

$匹配字符串结尾 

正则表达式匹配邮箱以m结尾

常用的匹配规则-分组匹配

|:匹配左右任意一个表达式,从左至右

(ab)将括号中字符作为一个分组

\num引用分组num匹配到的字符串

(?p)分组起别名

(?P=name)引用别名为name分组匹配到的字符串

re.compile方法

compile将正则表达式模式编译成为一个正则表达式对象

reg = re.compile(pattern)

result = reg.match(string)

等效于result = re.match(pattern,string)

使用re.compile()和保存所产生的正则表达式对象重用效率更高

re.search方法

search在全文中匹配一次,匹配到就返回

语法:re.search(pattern,string,flags=0)

函数参数说明:

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等

re.findall()查询字符串中某个正则表达式全部的非重复出现的情况,返回的是一个结果列表

re.sub 将匹配到的数据进行替换

语法:sub(pattern,repl,string,count=0,flags=0)

参数说明:

pattern:正则中的模式字符串

repl:替换的字符串,也可以是一个函数

string:被查找的原始字符串

flags:标志位,用于控制正则表达式的匹配方式

re.subn 实现目标的搜索和替换,返回被替换的数量,以元组的形式

re.split 根据匹配进行切割字符串,并返回一个列表

语法:split(pattern,string,maxsplit=0,flags=0)

参数说明:

pattern:匹配的正则表达式

string:要匹配的字符串

maxsplit:分隔次数,maxsplit=1分隔一次,默认为0,不限制次数,

flags:标志位,用于控制正则表达式的匹配方式

上一篇下一篇

猜你喜欢

热点阅读