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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python社交网络分析_python编程:从入门到实践

    python社交网络分析_python编程:从入门到实践NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)输出结果1、测试对象data1=’今天上海的天气真好!我的心情非常高兴!如果去旅游的话我会非常兴奋!和你一起去旅游我会更加幸福!’data2=’今天上海天气真差,非常讨厌下雨,把我冻坏了,心情太不高兴了,不高兴,我真的很生气!’data3=’美国华裔科学家,祖籍江苏扬州市高邮县,…

    2022年8月10日
    6
  • 自动化运维平台功能大纲

    自动化运维平台功能大纲

    2022年5月13日
    35
  • DB4O详细介绍

    DB4O详细介绍深入db4o深入db4o这是RickGrehan发表在TheServerSide上的一篇关于面向对象数据库–db4o的文章,较全面地介绍了db4o的关键特性,希望对大家认识db4o能有所帮助。(2007.12.07最后更新)db4o-针对对象的数据库-是一个完全的对象数据库;它以使对象在其生命周期中-无论是在数据库内或是在外-都保持着它们的本性这样一种方…

    2022年7月21日
    13
  • 什么是WPF_windows程序设计教程

    什么是WPF_windows程序设计教程windows的消息具有以下两个参数:(1)字参数(wParam)(2)长参数(lParam)  字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体。附加信息的消息号取决于消息号。一、wParam和lParam消息 :部分说明需要查看MSDN例如:1 WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高。…

    2022年8月18日
    6
  • win7显示器亮度怎么调_虚拟机外接显示器

    win7显示器亮度怎么调_虚拟机外接显示器很久没有继续研究wddmhook了,最后一次研究还在3年前,不得不说虽然应用的少,但是wddmhook却是很有技术含量的一项技术,而且实用性很高,我们除了做虚拟显示器还能做很多的东西,比如高效的截屏(因为直接从驱动层面截屏,所以效率和实现效果秒杀mirrordriver和DXGI)、视频重定向(视频硬件加速的时候可以直接获取原始码流)、修改原始的显示器厂商信息、修改显示器支持分辨率,等等骚操作wddmhook都可以实现。去年,深圳某硬件公司找到我,他们正在做usb转HDMI或者USB转VGA的硬件

    2022年8月21日
    5
  • SpringBoot源码解析之注解

    SpringBoot源码解析之注解本文的代码基于1.5.9版本启动类中都需要添加@SpringBootApplication注解,该注解中包含了三个重要注解:1、@SpringBootConfiguration标记为springBoot应用,在这个注解中又有@Configuration表示是个注解配置。2、@EnableAutoConfiguration该注解中又包含@AutoConfigurationPackage…

    2022年6月3日
    74

发表回复

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

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