Python初识模块之正则表达式

Python初识模块之正则表达式什么是正则表达式  正则表达式是字符串匹配的一种规则,在线测试工具http://tool.chinaz.com/regex/[字符组]在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字、字母、标点等等。假如你现在要求一个位置”只能出现一个数字”,那么这个位置上的字符只能是0、1、2…9这10个数之一。[0-9]、[a-z]、[A…

大家好,又见面了,我是你们的朋友全栈君。

什么是正则表达式

  正则表达式是字符串匹配的一种规则,在线测试工具http://tool.chinaz.com/regex/

[字符组]在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
字符分为很多类,比如数字、字母、标点等等。
假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
[0-9]、[a-z]、[A-Z]、[0-9a-z]等等都是字符组的应用,注意一个字符组只匹配一个字符哦

    字符:

元字符  匹配内容

.     除换行符以外的任意字符

\w    匹配字母,数字,下划线 –word

\s     匹配所有空白符 –space

\d     匹配数字 –digit

\W      匹配非字母,数字,下滑线的字符

\S    匹配非空白符

\D    匹配非数字

\n    匹配一个换行符

\t     匹配制表符 –table

.\b      匹配一个单词的结尾(不好用)

^      匹配字符串的开头

$      匹配字符串的结束,与^连用可以严格约束字符串 eg: ^[a-z]$只能匹配一个字母

|     或,从左到右匹配,所以长的应该在前,短的在后

()      表示一个组

[^…]    除了…的所有字符 eg: [^a-z]

  量词:用来约束紧跟着的字符,贪婪匹配,尽可能匹配多次

*    表示重复0次或多次

+    表示重复1次或多次

?     表示重复0次或1次

{n}    重复n次

{n,}   重复n次或多次

{n,m}   重复n次或m次  

  在量词后面加上?就变成了非贪婪匹配,也叫惰性匹配

   忘川和忘清和忘了学习

忘.?  忘川 忘清 忘了  ?0次或1次

忘.*    忘川和忘清和忘了学习  0次或多次

忘.+   忘川和忘清和忘了学习 1次或多次

忘.{1,2}   忘川和 忘清和  忘了学  1次或2次

忘.*?    忘 忘 忘   加上?时变成了惰性匹配

忘[川清了学习]*   忘川 忘清  忘了学习

忘[^和]*   忘川 忘清  忘了学习  

  转义符 \

在正则表达式中,有很多有特殊意义的是元字符,比如\n和\s等,如果要在正则中匹配正常的”\n”而不是”换行符”就需要对”\”进行转义,变成’\\’。

但在很多时候这样会很麻烦,所以可以在使用正则时在想要匹配的字符串前加上r    eg: r’\n’

  贪婪匹配+?

*?    重复任意次,但尽可能少重复
+?   重复1次或更多次,但尽可能少重复
??   重复0次或1次,但尽可能少重复
{n,m}?  重复n到m次,但尽可能少重复
{n,}?  重复n次以上,但尽可能少重复

.*?x  重复任意次,直到x出现

  

 

转载于:https://www.cnblogs.com/xfdhh/p/9943489.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158394.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 激光slam认知_激光slam的优缺点

    激光slam认知_激光slam的优缺点slam介绍什么是slam?SLAM(simultaneouslocalizationandmapping),也称为CML(ConcurrentMappingandLocalization),即时定位与地图构建,或并发建图与定位。问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边逐步描绘出此环境完全的地图所谓完全的地图(aconsistent…

    2022年8月23日
    5
  • Cookie–记住上一次访问时间案例(Java)

    Cookie–记住上一次访问时间案例(Java)Cookie–记住上一次访问时间案例(Java)博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!需求访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串分析可以采用Cookie来完成在服务器中的Servlet判断是否有一个名为lastTime的cookie有:不是第一次访问响应数据:欢迎回来,您上次访问时间为:2020年

    2022年7月8日
    15
  • 计算机二级excel设置宏,Excel2013中为宏指定快捷键的方法

    计算机二级excel设置宏,Excel2013中为宏指定快捷键的方法计算机二级知识知多少?小编又来普及了,希望大家能够好好学习计算机二级,争取一次过关。其实,在Office2013/”target=”_blank”>Office2013应用程序中,使用快捷键是一种快速执行命令的方法,如,在选择对象后按“Ctrl+C”键可以快速执行对象的复制操作,按“Ctrl+V”键可以快速执行对象的粘贴操作。实际上,对于录制的宏,同样可以通过指定快捷键来方便其执行,下面…

    2022年5月17日
    73
  • NOIP2012 疫情控制[通俗易懂]

    NOIP2012 疫情控制[通俗易懂]也许更好的阅读体验Description\mathcal{Description}Description原题链接一句话题意一个人可以堵住一个子树,不能一次堵住整棵树,求堵住每个通往叶子节点的路径,走的最远的那个人走的路程最少是多少,若不能堵住输出−1-1−1Solution\mathcal{Solution}Solution看了下其他题解,都说很毒瘤最开始我也认为很毒瘤就是在决…

    2022年8月22日
    3
  • Telerik的RadControls控件(二)

    Telerik的RadControls控件(二)继上篇我们学习了RadWindow控件的用法之后,本篇我们将学习在项目中更加方便开发人员的常用控件RadAjax控件.  RadAjax是面向ASP.NET应用程序无编码AJAX使能化的第一个框架。这个专利Click-and-Go™技术可以让你不需要对你应用程序做任何修改(摆放Callback面板,设置触发器等)。最棒的是,你根本不需要写一行的JavaScript或s

    2022年7月24日
    4
  • 【NLP】之 结巴分词

    【NLP】之 结巴分词1.结巴分词简介结巴分词是当前效果较好的一种中文分词器,支持中文简体、中文繁体分词,同时还支持自定义词库。结巴分词支持三种分词模式:精确模式、全模式和搜索引擎模式。精确模式是试图将句子最精确的进行切分,适合用于文本分析; 全模式的原理是把句子中全部可以成词的词语全部扫描出来,它的分词速度快,缺点是无法识别歧义词句; 搜索引擎模式是在精确模式的基础上进一步处理的,它对较长的词语再进…

    2022年6月17日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号