如何理解Python中的正则表达式(1)
今天小编要跟大家分享的文章是如何理解Python中的正则表达式(1)?可以毫不夸张的讲,没有正则表达式,就没有搜索引擎。估计不少人还是云里雾里,OK,今天就带大家来学习一下,Python入门新手和正在Python学习的小伙伴快来看一看吧,希望能够对大家有所帮助 !
正则表达式是Python基础学习中很重要的一部分内容,今天我们就开始学习Python中正则表达式的相关内容,今天我们先来了解什么是正则表达式、正则表达式有什么作用等内容。
正则表达式诞生的缘由:
在编程处理文本的过程中,经常会需要按照某种规则去查找一些特定的字符串。比如知道一个网页上的图片都是叫做'image/8554278135.jpg'之类的名字,只是那串数字不一样;又或者在一堆人员电子档案中,你要把他们的电话号码全部找出来,整理成通讯录。诸如此类工作,如果手工去做,当量大的时候那简直就是悲剧。但你知道这些字符信息有一定的规律,可不可以利用这些规律,让程序自动来做这些无聊的事情?答案是肯定的。这时候,你就需要一种描述这些规律的方法,正则表达式就是干这事的。
正则表达式就是记录文本规则的代码。
所以正则表达式并不是Python中特有的功能,它是一种通用的方法。Python中的正则表达式库,所做的事情是利用正则表达式来搜索文本。要使用它,你必须会自己用正则表达式来描述文本规则。之前多次有同学表示查找文本的事情经常会遇上,希望能介绍一下正则表达式。既然如此,我们就从正则表达式的基本规则开始说起。
1.首先说一种最简单的正则表达式,它没有特殊的符号,只有基本的字母或数字。它满足的匹配规则就是完全匹配。
例如:有个正则表达式是“hi”,那么它就可以匹配出文本中所有含有hi的字符。
来看如下的一段文字:
Hi, I am Shirley Hilton. I am his wife.
如果我们用“hi”这个正则表达式去匹配这段文字,将会得到两个结果。因为是完全匹配,所以每个结果都是“hi”。这两个“hi”分别来自“Shirley”和“his”。默认情况下正则表达式是严格区分大小写的,所以“Hi”和“Hilton”中的“Hi”被忽略了。
为了验证正则表达式匹配的结果,你可以用以下这段代码做实验:
import re text = "Hi, I am Shirley Hilton. I am his wife." m = re.findall(r"hi", text) if m: print m else: print 'not match'
暂时先不解释这其中代码的具体含义,你只要去更改text和findall中的字符串,就可以用它来检测正则表达式的实际效果。
2.如果我们只想找到“hi”这个单词,而不把包含它的单词也算在内,那就可以使用“\bhi\b”这个正则表达式。
在以前的字符串处理中,我们已经见过类似“\n”这种特殊字符。在正则表达式中,这种字符更多,以后足以让你眼花缭乱。
“\b”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割。而“\b”自身又不会匹配任何字符,它代表的只是一个位置。所以单词前后的空格标点之类不会出现在结果里。
在前面那个例子里,“\bhi\b”匹配不到任何结果。但“\bhi”的话就可以匹配到1个“hi”,出自“his”。用这种方法,你可以找出一段话中所有单词“Hi”,想一下要怎么写。
3.最后再说一下[]这个符号。
在正则表达式中,[]表示满足括号中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”。
在前面例子中,如果把正则表达式改为“[Hh]i”,就可以既匹配“Hi”,又匹配“hi”了。
恭喜您在Python的道路上又坚持了一天,今天我们算是初步的认识了一下Python中的正则表达式,下一讲我们来了解更多内容。
以上就是小编今天为大家分享的关于如何理解Python中的正则表达式(1)的文章,希望本篇文章能够对正在 Python学习 和从事Python相关工作的小伙伴们有所帮助,想要了解更多相关知识记得关注马哥教育官网,每天都会有大量优质内容与大家分享!免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。