带小白了解什么是Python教程-正则表达式?

今天马哥教育要跟大家分享的文章是带小白了解什么是Python教程-正则表达式?熟悉Python的小伙伴们都知道对于正则表达式,刚开始学习的时候,觉得它毫无规律的可言就是一串标点符号和字母组成的一个不知道用来干什么的表达式。Python入门新手和正在Python学习的小伙伴快来看一看吧,希望能够对大家有所帮助 !

身边的正则表达式

网上说的什么XX分钟精通正则完全是骗人的。本文旨在让大家对正则表达式有一些基础的概念与了解,能看得懂简单的正则表达式,写得出简单的正则表达式。至于精通,那就只能在日常开发过程中慢慢摸索深入理解了。

在讲正则表达式之前,先给大家讲个例子。假设你正在用手机浏览电子书(正看到男主收异火,寻宝物,炼丹药,斗魂族踏上逆袭之路的时候,又或者女主兜兜转转又来到了自己命中注定的男主身边的时候。)这时,突然你手滑了……又回到了整本书的首页。这时你会怎么办呢?大多数人应该有如下三种办法:

从首页一页一页往目标页翻。这种情况虽然可以,但是等到你翻到那一页的时候,估计你都忘了前面的剧情讲了什么。这种我们列为下选。

还有一种就是你记得看的章节,然后先跳转到章节首页,然后再一页页往后翻,这种虽然可以但是看书看的入神的时候谁还记得自己看第几章啊。这种我们列为中选。

最后一种,就是根据关键字进行筛选。假设你正看到男主角创立了“无尽火域”,或者女主角与男主角解开了种种矛盾重归于好。那么此时你就可以根据文章中的关键字对整本书进行检索。这种又有利于你回忆自己看过的剧情,又快速的方法。我们列为上选。

读到这里,很多朋友应该已经明白了。最后一种通过关键字检索到我们所需求的文本就是正则表达式的一种——精确匹配。

正则表达式的相关知识

在我们日常开发中,正则通常被用来校验用户输入的内容是否符合逻辑。如:校验邮箱、生日、手机号、身份证号等等。

那么接下来我们就来一起学习一下它。因为正则表达式也是用字符串表示的,所以,我们要首先了解如何用字符来描述字符。

在正则表达式中,如果直接给出字符,就是精确匹配。用d可以匹配一个数字,w可以匹配一个字母或数字,所以:

’00d’可以匹配’007’,但无法匹配’00A’;

‘ddd’可以匹配’010’;

‘wwd’可以匹配’py3’;

. 可以匹配任意字符。例如:

pytho. 可以匹配Python、pythoa、pytho7、Python!等。

要匹配变长的字符,在正则表达式中, * 表示任意个字符(包括零个),+ 表示至少一个字符,? 表示零个或一个字符, {n} 表示n个字符,{n,m} 表示n-m个字符,[] 表示范围。我们来看一个例子:

^[1-9]d{4,11}$

上面的表达式中:

^:表达了一行的起始位置。

^[1-9]:表示了必须以数字1-9开开头的字符串。

{4,11}:表示了4到11个字符 。

$:表示一行的结束位置,d$表示必须以数字结尾。

下表是对正则表达式中的一些基本符号进行的总结。

正则表达式

Python中的正则表达式

Python 自1.5版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

由于Python中也使用 ‘’ 作为转义字符。因此,建议大家在字符串前面加上r,用来表示原始字符串。举例:

# 不加 r使用 转义

s = 'ABC\-001'

 # Python的字符串

# 对应的正则表达式字符串变成:

# 'ABC-001'

# 加 r 使用原始字符串s = r'ABC-001'

 # Python的字符串

# 对应的正则表达式字符串不变:

# 'ABC-001'

下面是re包的常用函数:

零基础Python教程

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

#!/usr/bin/Python

import re

line = "Cats are smarter than dogs";

matchObj = re.match( r'dogs', line, re.M|re.I)

if matchObj:

print "match --> matchObj.group() : ", matchObj.group()

else:

print "No match!!"

matchObj = re.search( r'dogs', line, re.M|re.I)

if matchObj:

print "search --> matchObj.group() : ", matchObj.group()

else:

print "No match!!"

# 运行结果No match!!

search --> matchObj.group() : dogs

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志。

以上就是马哥教育今天为大家分享的关于带小白了解什么是Python教程-正则表达式的文章,希望本篇文章能够对正在从事Python相关工作的小伙伴们有所帮助,想要了解更多相关知识记得关注马哥教育官网,每天都会有大量优质内容与大家分享!

声明:文章来源于网络,侵删!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!