Python正则表达式实战:20个关键示例解析

0 下载量 41 浏览量 更新于2024-08-31 收藏 78KB PDF 举报
正则表达式是编程语言中处理字符串的强大工具,尤其在Python中,通过`re`模块,我们可以实现复杂的文本匹配和处理。Python从1.5版本开始引入了`re`模块,它提供了Perl风格的正则表达式功能,使得Python具备了全面的正则表达式支持。 `re.compile()`是`re`模块中的核心函数,它接受一个模式字符串和可选的标志参数,编译成正则表达式对象。这个对象具有多种方法,如`search()`, `match()`, `findall()`, `sub()`, `split()`等,用于执行正则表达式的匹配、查找、替换和拆分操作。 例如,`search()`函数用于查找字符串中首个匹配正则表达式的部分。在下面的例子中,它会在字符串`s='ilovepythonverymuch'`中查找子串'python',并返回匹配的结果: ```python import re s = 'ilovepythonverymuch' pat = 'python' r = re.search(pat, s) print(r.span()) # 输出 (7, 13) ``` `finditer()`函数则会返回一个迭代器,用于遍历字符串中所有匹配的子串。以下例子中,它会在`s='山东省潍坊市青州第1中学高三1班'`中查找所有的数字'1': ```python import re s = '山东省潍坊市青州第1中学高三1班' pat = '1' r = re.finditer(pat, s) for i in r: print(i) # 输出 Match 对象 ``` `\d`是正则表达式中的特殊字符,代表数字,它等价于 `[0-9]`。在下面的例子中,`'\d+'`会匹配连续的数字,`findall()`函数将返回所有匹配的数字: ```python import re s = '一共20行代码运行时间13.59s' pat = r'\d+' r = re.findall(pat, s) print(r) # 输出 ['20', '13', '59'] ``` `?`是量词,表示前面的字符可以匹配0次或1次。在处理小数时,我们可以用它来匹配可能存在的小数点,如下面的例子所示: ```python import re s = '一共20行代码运行时间13.59s' pat = r'\d+\.?\d+' # 小数点可能出现0次或1次 r = re.findall(pat, s) print(r) # 输出 ['20', '13.59'] ``` `^`在正则表达式中表示字符串的开始。以下例子展示了如何在字符串开始处查找特定字符: ```python import re s = 'ThismoduleprovidesregularexpressionmatchingoperationssimilartothosefoundinPerl' pat = r'^[emrt]' # 查找以 'e', 'm', 'r', 或 't' 开头的字符 r = re.findall(pat, s) print(r) ``` 以上只是正则表达式在Python中应用的一部分,实际上,正则表达式还包括更多的元字符(如`.`, `*`, `{}`, `[]`, `$`, `\w`, `\W`, `\b`, `\B`等)和操作符,它们组合起来可以构建出极其强大的字符串匹配规则。通过不断实践和学习,你可以掌握更多高级技巧,例如使用非贪婪匹配(`?`)、分组(`()`), 以及正向预查和反向预查等。理解并熟练运用正则表达式,将会极大地提高你在处理字符串问题时的效率。