少说话多写代码之Python学习064——标准模块(正则表达式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yysyangyangyangshan/article/details/85110211

Python中re模块包含的是对正则表达式的支持。正则表达式是一个很有趣,对处理字符串作用比较大,我们可以花一点时间了解一下。
正则表达式是可以匹配文本片段的一组规则。最简单的正则表达式就是一个字符串,能匹配自身。比如字符串a='迢递嵩高下,归来且闭关',可以匹配字符串b='迢递嵩高下,归来且闭关'。
下面我们简单看看正则表达式的一些基本规则。
1、通配符
正则表达式中一些特殊字符可以匹配多个字符串。比如点号(.),可以匹配任意字符,出换行符外。正则表达式c=.饭,可以匹配'早饭','晚饭','吃饭'等。.号可以匹配任意字符,因此叫做通配符。

2、特殊字符转义
在正则表达式中如果将特殊字符当作普通字符会遇到问题。比如,需要匹配字符串'python.py',直接用的话,会匹配到'pythonapy'。因为.号是通配符,可以匹配任何字符。为了让特殊字符和普通字符一样,需要将其转义。一般是加反斜杠,比如'python\\.py',这样就只能匹配'python.py'了。

3、字符集
匹配任意字符,范围太大了,我们有时需要缩小范围。可以使用中括号中括住的的字符串来作为指定范围,这个叫字符集。字符集可以匹配包括中的任意字符。,比如'[胜败]乃兵家常事',可以匹配,'胜乃兵家常事''败乃兵家常事'。比如我们用[a-z]可以匹配小写a至z的所有字符。
也可以使用逻辑非,比如'[^我滴神]',表示除:我、滴、神这三个字符外其他都满足条件。

4、选择符和子模式
如果我们想匹配比如'道不同不相为谋''道德经',此时不能使用通配符和字符集了,可以使用一种可以选择的字符:(|),这样写'道不同不相为谋|道德经'
有时候,不需要对整个字符串使用选择运算符,而只需要一部分。这时使用圆括号括起来需要的部分,称之为子模式。比如,上面例子可写为
'道(不同不相为谋|德经)'

5、可选项和重复子模式
在上面的子模式后面加上?号,就变为可选项。比如这段,
'(黄河)?(长江)?之水天上来'
可匹配:
黄河之水天上来
长江之水天上来
黄河长江之水天上来
天上来

6、字符串开始和结尾
匹配时如果我们知道这个字符的位置是开头还是结尾,那么效率会大大提高。比如,只想在开头位置匹配'我',会这样写'^我',会匹配到'我言秋日胜春朝',但是不会匹配到'弃我去者,昨日之日不可留'。另外还有一些匹配的例子,比如我们平时的网址www开头,可以用w+匹配。http可以用ht+p匹配。
正则表达式组合非常多,在我们实际使用中自己再总结吧。

猜你喜欢

转载自blog.csdn.net/yysyangyangyangshan/article/details/85110211