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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Python成长之路---第四天---Python基础(16)---2016年1月24日(寒风刺骨)相关的知识,希望对你有一定的参考价值。

四、正则表达式
    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的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日(寒风刺骨)的主要内容,如果未能解决你的问题,请参考以下文章

我的创作纪念日 | 软件测试成长之路

第四天——元组

Python成长之路第四篇模块儿

Python成长之路第五篇:Python基础之模块

python成长之路第十三篇:Python操作MySQL之pymysql

python成长之路第十四篇:HTML初步认识