虽然Python字符串提供了众多实用的函数,但实际处理字符串时,常常需要使用更加强大的工具。有鉴于此,程序员开发了一种用于复杂字符串处理的微型语言——正则表达式。
简单的正则表达式
运算符 | 描述的字符串 |
---|---|
xy? | x,xy |
x|y | x,y |
x* | '',x,xx,xxx,xxxx等 |
x+ | x,xx,xxx,xxxx等 |
“?”:表示它左面那个字符是可选的。“|”:表示或者。“x*”:表示有0个或更多个x组成的字符串。“x+”和“x*”相同,区别是它排除了空字符串。
在正则表达式中,可以使用圆括号指出运算符用于那个子串。例如:"(ab)+!"描述的是"ab!","abab!","ababab!"等;但是"ab+!"描述的是"ab!","abb!","abbb!"等。
可以随意混合使用这些正则表达式运算符,它可描述众多常见的字符串类型。
使用正则表达式匹配字符串
Python的正则表达式库:re。在使用正则表达式前,务必导入re包。下面是一个简单的实例:
# 编写程序,需要在用户输入exit或者quit时退出
# 使用正则表达式匹配用户输入的字符串
import re
def is_exit(s):
return re.match('exit|quit',s)!=None
上面的代码在匹配字符串时,使用了re.match(regex,s)函数。它在regex和s不匹配时,返回None,否则返回一个特殊的正则表达式匹配对象。
Python库re规模庞大,其中有大量正则表达式函数可用于执行字符串处理任务,如匹配、分析和替换。模块re的文档:传送门