Python 知识量:10 - 41 - 150
在说到字符串处理时不得不提正则表达式,在许多编程语言中,正则表达式都是字符串处理不可或缺的工具。
正则表达式是一种强大的字符串处理微型语言,可以高效的处理复杂的字符串任务,例如字符串匹配、替换、拆分等等。
正则表达式有自己的运算符,如下所示:
运算符 | 示例 |
---|---|
? | xy? 表示y是可选的。 |
| | x|y 表示x或y。 |
* | x* 表示0个或多个x。 |
+ | x+ 表示1个或多个x。 |
1、运算符?表示其紧挨着的左边的字符是可选的。对于“hello?”来说,这里描述了两个字符串:hell和hello。
2、运算符|表示或者。对于“x|y|z”来说,这里描述了3个字符串:x、y、z。
3、运算符*表示其紧挨着的左边的字符是0个或多个,可以是无穷多个。对于“ha*”来说,这里描述的是:h、ha、haa、haaa、.....
4、运算符+表示其紧挨着的左边的字符是1个或多个,可以是无穷多个。对于“ha+”来说,这里描述的是:ha、haa、haaa、.....
此外,在正则表达式中,可以用小括号标出运算符的目标字符串,也就是想运算哪个字符串。对于“(ha)+”来说,这里描述的是:ha、haha、hahaha、......与“ha+”描述是不一样的。
匹配字符串是正则表达式的最常用的功能,以下是一个示例:
#match.py import re #引入正则表达式 def is_string(s): return re.match('ok|good',s)!=None
运行结果为:
>>> ====================== RESTART: D:\PythonTestFile\match.py ===================== >>> is_string('ok') True >>> is_string('good') True >>> is_string('bad') False
注意:在match.py中,为了使用正则表达式功能,第二行需要导入Python的标准正则表达式库(re)。函数re.match()匹配成功时会返回一个特殊的正则表达式匹配对象,匹配失败时会返回None,代码中只需要检查是否返回的是None即可。
再来看一个更加复杂些的模式匹配示例:
#match.py import re #引入正则表达式 def is_string(s): return re.match('go+!*',s)!=None
运行结果为:
>>> ====================== RESTART: D:\PythonTestFile\match.py ===================== >>> is_string('go') True >>> is_string('goo') True >>> is_string('go!') True >>> is_string('gooooo') True >>> is_string('gooo!!!!!!!!!!!') True >>> is_string('g!') False
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6