码迷,mamicode.com
首页 > 编程语言 > 详细

我的Python成长之路---第四天---Python基础(16)---2016年1月24日(寒风刺骨)

时间:2016-01-27 12:45:50      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

四、正则表达式
    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。
    正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
    下面这张图展示了使用正则表达式匹配的流程
技术分享

1、Python支持的正则表达式元字符和语法
语法说明表达式实例完整匹配的字符串
字符
一般字符匹配自己abcabc
.匹配任意字符“\n”除外
DOTALL模式中(re.DOTALL)也能匹配换行符
a.babc或abc或a1c等
[...]
字符集[abc]表示a或b或c,也可以-表示一个范围如[a-d]表示a或b或c或da[bc]cabc或adc
[^...]非字符集,也就是非[]里的之外的字符a[^bc]cadc或aec等
预定义字符集(也可以系在字符集[...]中)
\d数字:[0-9]a\dca1c等
\D非数字:[^0-9]或[^\d]a\Dcabc等
\s空白字符:[<空格>\t\n\f\v]a\sca b等
\S非空白字符:[^s]
a\Scabc等
\w字母数字(单词字符)[a-zA-Z0-9]a\wcabc或a1c等
\W非字母数字(非单词字符)[^\w]a\Wca.c或a_c等
数量词(用在字符或(...)分组之后)
*匹配0个或多个的表达式。(注意包括0次)
abc*ab或abcc




















边界匹配(不消耗待匹配字符中的字符)
^匹配字符串开头,在多行模式中匹配每一行的开头^abcabc或abcd等
$匹配字符串结尾,在多行模式中匹配每一行的结尾
abc$abc或123abc等
\A仅匹配字符串开头\Aabcabc或abcd等
\Z仅匹配字符串结尾abc\Zabc或123abc等
\b匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b‘ 可以匹配"never" 中的 ‘er‘,但不能匹配 "verb" 中的 ‘er‘。


\B
匹配非单词边界。‘er\B‘ 能匹配 "verb" 中的 ‘er‘,但不能匹配 "never" 中的 ‘er‘。


逻辑、分组















我的Python成长之路---第四天---Python基础(16)---2016年1月24日(寒风刺骨)

标签:

原文地址:http://www.cnblogs.com/zhangxiaxuan/p/5162712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!