分享

python re常见函数

 昵称163835 2023-02-27 发布于广东
  • re.match():尝试从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则None。可以使用group()获取匹配成功的字符串。

        语法:re.match(pattern,string,flags=0),特别地,标志位为re.I:使匹配对大小写不敏感

参数描述
pattern匹配的正则表达式
string要匹配的字符串
flags

标志位,用于控制匹配方式

         常用匹配规则:数字(digit)、空格(space)、单词(word)

         匹配规范:不能以数字开头,只能包含字母、数字、下划线

符号匹配规则
.(点)匹配任意1个字符(除换行符\n)
\w匹配单词字符,即a-z、A-Z、0-9、_
\W匹配非单词字符
\s匹配空白,即空格、tab键
\S匹配飞空白,除空格、tab键
\d匹配一个数字,即0-9
\D匹配非数字
\A只从字符开头匹配,比如re.search('\Aabc','gggggabc') 匹配不到
\Z匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串,跟$一样
\z匹配字符串结尾,如果存在换行,匹配到换行符\n
\n匹配换行符
\t匹配tab键
^匹配一行字符串的开头
$匹配一行字符串的结尾
[...][]里面的字符为匹配的字符集合,比如[abc]表示匹配a或b或c
[^...]匹配不在[]里面的字符,比如[^abc]匹配除a,b,c以外的字符
*匹配 '*’ 前面的字符出现0次或以上,即可有可无,相当于{0,}
+匹配 '+’ 前面的字符出现1次或以上,即至少有一次,相当于{1,}
匹配 '?’ 前面的字符出现1次或0次,即要么有一次,要么没有,相当于{0,1}
{m}匹配 {m} 前面的字符出现m次
{m,}匹配 {m,} 前面的字符至少出现m次
{n,m}匹配 {n,m} 前面的字符出现从n到m次
^A.*头匹配,例如:ABC
.*A$尾匹配,例如:CBA
^A.*A$全字匹配,例如:ABCA
  • group():匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
  • groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。
  • re.compile():将正则表达式模式编译成一个正则表达式对象,比直接match()效率更高。

        例:reg=re.compile(pattern) ,result=reg.match(string)等价于result=re.match(pattern,string)

  • re.search():在全文中匹配一次,匹配到就返回。返回的是match可迭代对象,语法格式与match()类似。
  • re.finditer():查询字符串中某个正则表达式全部的情况,返回的是match可迭代对象,语法格式与match()类似。
  • re.findall():查询字符串中某个正则表达式全部的情况,返回的是一个符合正则表达式的结果列表。是match对象,不是迭代对象,可直接打印,不需要group(),语法格式与match()类似。
  • re.sub():将匹配到的字符串进行替换。字符串可直接输出。

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

参数描述
pattern匹配的正则表达式
repl替换的字符串,也可以为一个函数
string要匹配的字符串
count模式匹配后最大替换次数,默认0表示替换所有的匹配
flags标志位,用于控制匹配方式
  • re.subn():将匹配到的字符串进行替换,以元组的形式返回被替换后的字符串和替换数量。
  •  re.split():根据匹配进行切割字符串,并返回一个列表,可直接输出。

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

参数描述
pattern匹配的正则表达式
string要匹配的字符串
maxsplit分隔次数,maxsplit=1分隔一次,默认0表示不限制次数
flags标志位,用于控制匹配方式

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多