正则表达式完整整理总结,带实例演示,强烈建议收藏!!!

正则表达式总结

  • 常用正则表达式匹配练习工具的网址:https://regex101.com/
  • 练习语言使用的是python

\n表示换行,newline
\r表示回车,return
\t表示Tab
\0表示空字符,none、NUll…
\s表示所有空白字符
\f表示换页字符,form-feed

单个字符

  • .:除换行以外所有字符,匹配换行符以外的任何单个字符在这里插入图片描述

  • []:匹配集合中任意一个字符,常用的[abk]、[a-k]、[a-zA-Z]
    在这里插入图片描述

    1. [abk]:匹配a字符或者b字符或者k字符在这里插入图片描述

    2. [^abk]:匹配任意字符,除了a字符或者b字符或者k字符在这里插入图片描述

    3. [a-k]:匹配a到k之间的任意字符,包括a字符和k字符在这里插入图片描述

    4. [^a-k]:匹配任意字符,处理那些a到k之间的字符在这里插入图片描述

    5. [a-zA-Z]:匹配a-z或者A-Z之间的任意字符,你可以随意组合[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H1ES1fTU-1587564416558)(media/Snip20200422_19.png)]

    6. [^a-zA-Z]:匹配除了a-z或者A-Z之间的任意字符,可以是数字、换行符、空格等等[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8I1MRqQ-1587564416560)(media/Snip20200422_20-1.png)]

  • \d:匹配任意的十进制数字(digit),相当于[0-9]在这里插入图片描述

  • \D:匹配任意的非十进制的字符[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0mCKWwaH-1587564416563)(media/Snip20200422_22.png)]

    扫描二维码关注公众号,回复: 11094120 查看本文章
  • \w:匹配任意的字母(word)、数字、中文或者下划线,相当于[a-zA-Z0-9_][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x83PDAoU-1587564416565)(media/Snip20200422_28.png)]

  • \W:匹配字母、数字、中文或者下划线以外的任何内容[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UztGxptf-1587564416566)(media/Snip20200422_29-1.png)]

  • \s:匹配所有空白字符包,包括空格、tab、换行符…,等价于[ \f\n\r\t\v]在这里插入图片描述

  • \S:匹配所有非空白
    在这里插入图片描述

数量修饰

  • a*:匹配0个或者多个连续的a字符(>=0),例如a*表示字符串可以有0个a或者多个a[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o1pQhkhN-1587564416571)(media/Snip20200422_32.png)]
  • a+:匹配一个或者多个连续的a字符(>=1),即a*表示a字符至少出现一次[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyhR1Ojr-1587564416572)(media/Snip20200422_33.png)]
  • a?:匹配a字符或者不匹配任何字符,即a字符可有可无[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGJpGHQB-1587564416573)(media/Snip20200422_34.png)]
  • a{m}:精确匹配m个连续的a字符,中间有任何空格都不可以[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H2PsK0Zh-1587564416574)(media/Snip20200422_35.png)]
  • a{m,}:匹配至少m个连续的a字符[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kaedcLdK-1587564416574)(media/Snip20200422_37.png)]
  • a{m,n}:匹配m个和n个连续的a字符,包含m和n,即m、m+1、…、n-1、n个连续的a字符都可以[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zRijX9ZO-1587564416575)(media/Snip20200422_38.png)]

边界

  • ^a:匹配任意一行的首字符必须是a,即任意一行以a字符开头[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zO5paMZa-1587564416576)(media/Snip20200422_39.png)]
  • a$:匹配任意一行的结尾最后字符必须是a,即任意一行以a字符结尾[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXHY796E-1587564416577)(media/Snip20200422_40-1.png)]

分组

  • (ab):匹配所有ab两个字符为一组,即ab为一组[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2vGgakY4-1587564416578)(media/Snip20200422_42.png)]
  • (a|b):匹配表达式中的a部分或者b部分[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lbdw2Vyc-1587564416581)(media/Snip20200422_44.png)]

贪婪模式和惰性模式

  • a.*b:贪婪模式,匹配a到b尽可能长的字符串,除了行终止符\n在这里插入图片描述

  • a.*?b:惰性模式,匹配a到b尽可能短的字符串,匹配成功后,继续寻找下一个最短的“a到b”在这里插入图片描述

Python中的正则

  • re.I:忽略大小写,insensitive(不敏感)
  • re.M:多行匹配,multiline
  • re.X:忽略空格
  • re.S :单行匹配,该字符串可以认为是单行输入
  • re.G:匹配所有的符合条件的字符串,告诉引擎在找到第一个匹配项后不要停止,而是继续直到找不到更多匹配项为止
  • re.sub(正则表达式, 替换内容, 字符串)
发布了38 篇原创文章 · 获赞 43 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_40272386/article/details/105694158