下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

【Python 课堂】第58课—— 正则表达式(4)

作者:在线学习平台     来源: www.kokojia.com点击数:601发布时间: 2014-10-16 10:16:23

标签: 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位的数字,可以用来检测身份证号码
 
^1\d*[x]?
以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。
 
另外再说一下之前提到的转义字符\。如果我们确实要匹配.或者*字符本身,而不是要它们所代表的元字符,那就需要用\.或\*。\本身也需要用\。
比如"\d+\.\d+"可以匹配出123.456这样的结果。
 
留一道稍稍有难度的习题:
写一个正则表达式,能匹配出多种格式的电话号码,技能培训包括
(021)88776543
010-55667890
02584453362
0571 66345673
 
文章来源于Crossin,由课课家平台整理,转载请注明。

赞(18)
踩(0)
分享到:
上一篇:Python的创造者
华为认证网络工程师 HCIE直播课视频教程