如何理解Python中的正则表达式(4)

文章目录

  1. 1.常用的元字符
  2. 2.S其实就是s的反义,任意不是空白符的字符。
  3. 3.用来表示字符重复的方式

今天要跟大家分享的文章是如何理解Python中的正则表达式(4)?在Python正则表达式这里,我们已经聊了正则表达式的含义、正则表达式中的一些特殊符号、使用正则表达式提取电话等内容, Python入门新手和正在Python学习的小伙伴快来看一看这节课我们要学习的内容吧,希望能够对大家有所帮助 !

本节课我们继续带领大家认识更多的元字符,并且告诉大家正则表达式除了可以抓取字符还可以干什么。

1.常用的元字符

我们已经了解了正则表达式中的一些特殊符号,如b、d、.、S等等。这些具有特殊意义的专用字符被称作“元字符”。常用的元字符还有:

w – 匹配字母或数字或下划线或汉字(我试验下了,发现3.x版本可以匹配汉字,但2.x版本不可以)

s – 匹配任意的空白符

^ – 匹配字符串的开始

$ – 匹配字符串的结束

2.S其实就是s的反义,任意不是空白符的字符。

同理,还有:

W – 匹配任意不是字母,数字,下划线,汉字的字符

D – 匹配任意非数字的字符

B – 匹配不是单词开头或结束的位置

[a]的反义是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。

3.用来表示字符重复的方式

之前我们用过*、+、{}来表示字符的重复。其他重复的方式还有:

? – 重复零次或一次

{n,} – 重复n次或更多次

{n,m} – 重复n到m次

正则表达式不只是用来从一大段文字中抓取信息,很多时候也被用来判断输入的文本是否符合规范,或进行分类。来点例子看看:

^w{4,12}$

这个表示一段4到12位的字符,包括字母或数字或下划线或汉字,可以用来作为用户注册时检测用户名的规则。(但汉字在Python2.x里面可能会有问题)

d{15,18}

表示15到18位的数字,可以用来检测身份证号码

^1d*[x]?

以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

另外再说一下之前提到的转义字符。如果我们确实要匹配.或者*字符本身,而不是要它们所代表的元字符,那就需要用.或*。本身也需要用\。

比如”d+.d+”可以匹配出123.456这样的结果。

留一道稍稍有难度的习题:

写一个正则表达式,能匹配出多种格式的电话号码,包括:

(021)88776543

010-55667890

02584453362

0571 66345673

恭喜您在Python的道路上又坚持了一天,今天我们学习的这些常用的元字符你都记住了吗?

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。