Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力

引言:

在 Python 编程中,正则表达式是一种强大而灵活的工具,用于字符串匹配和处理。本文将介绍正则表达式的基础知识,包括正则表达式的语法和常用函数。我们将通过实例和练习题,帮助你更好地掌握正则表达式的使用方法。

2  正则表达式的语法:

正则表达式由一系列字符和特殊字符组成,用于描述和匹配字符串模式。下面是一些常用的正则表达式的语法:

2.1  普通字符:

  • 普通字符是指除了特殊字符之外的所有字符,例如字母、数字、标点符号等。它们在正则表达式中直接匹配对应的字符。

  • 示例:'hello' 匹配字符串中的 "hello"。

2.2  特殊字符:

  • 特殊字符包括一些有特殊含义的字符,需要通过转义字符 '\' 来匹配它们的字面值。常见的特殊字符有:'. ^ $ * + ? { } [ ] \ | ( )'。

  • 示例:'\.' 匹配字符串中的句号 "."

2.3  字符类:

  • 字符类用于匹配一组字符中的任意一个字符。将需要匹配的字符放在方括号 '[]' 内。

  • 示例:'[aeiou]' 匹配字符串中的元音字母。

2.4  量词:

  • 量词表示一个字符、字符类或子模式的出现次数。常见的量词有:'*' 表示零次或多次,'+' 表示一次或多次,'?' 表示零次或一次,'{m}' 表示恰好出现 m 次,'{m,}' 表示至少出现 m 次,'{m,n}' 表示出现次数在 m 和 n 之间。

  • 示例:'a{2,4}' 匹配字符串中连续出现 2 到 4 个 "a" 的子串。

3  常用的正则表达式函数:

Python 提供了 re 模块来处理正则表达式。下面是一些常用的正则表达式函数:

3.1  match()函数:

  • match()函数用于尝试从字符串的起始位置匹配一个模式,如果匹配成功,返回一个匹配对象;如果匹配失败,返回 None。

  • 示例:

    •         import re
    •  
    •         pattern = r"hello"
    •         string = "hello, world!"
    •         result = re.match(pattern, string)
    •         print(result)
    •  

    运行结果:

    •          <re.Match object; span=(0, 5), match='hello'>
    •  
    
     

3.2  search()函数:

  • search()函数在字符串中搜索匹配模式的第一个位置,如果匹配成功,返回一个匹配对象;如果匹配失败,返回 None。

  • 示例:

    •         import re
    •  
    •         pattern = r"world"
    •         string = "hello, world!"
    •         result = re.search(pattern, string)
    •         print(result)
    •  

    运行结果:

    •          <re.Match object; span=(7, 12), match='world'>
    •  
     

3.3  findall()函数:

  • findall()函数用于在字符串中找到所有匹配模式的子串,并返回一个包含所有匹配子串的列表。

  • 示例:

    •          import re
    •  
    •         pattern = r"\d+"
    •         string = "I have 2 apples and 3 oranges."
    •         result = re.findall(pattern, string)
    •         print(result)
    •  
       
             
     

    运行结果:

    •          ['2', '3']
    •  
       

4  正则表达式的应用案例:

现在,让我们通过一个实例来加深对正则表达式的理解和应用。

假设我们有一个字符串列表,其中包含一些邮箱地址。我们想要从中提取出所有的邮箱地址,并将它们打印出来。我们可以使用正则表达式来实现:

运行结果:

通过正则表达式的匹配,我们成功提取出了具有正确格式的邮箱地址,并将它们打印出来。

课后练习题:

  1. 编写一个正则表达式,匹配所有的手机号码(例如:13712345678)。

  2. 编写一个正则表达式,匹配所有的身份证号码(18 位数字)。

答案和解析:

  1. 正则表达式:r"1\d{10}"解析:以数字 1 开头,后面跟着 10 位数字。

  2. 正则表达式:r"\d{17}[\dXx]"解析:17 位数字和一个最后一位是数字或大写字母"X"或小写字母"x"。

5  总结:

本文介绍了正则表达式在Python编程中的基础知识和常用函数。首先,我们学习了正则表达式的语法,包括普通字符、特殊字符、字符类和量词的用法。然后,我们介绍了Python中常用的正则表达式函数,包括match()、search()和findall()。最后,我们通过一个实例演示了正则表达式的应用,提取并打印出字符串列表中的邮箱地址。文章还提供了两个练习题,加深读者对正则表达式的认识。

通过本文的学习,读者可以掌握正则表达式的基础知识,并开始应用它们解决实际问题。如有疑问,可以随时在评论区提问。

往期回顾

Python 小白的晋级之路 - 第一部分:Python 的重要性和简洁的语法

Python 小白的晋级之路 - 第二部分:探索 Python 变量

Python实战之冒泡排序

Python 小白的晋级之路 - 第三部分:玩转 Python 字符串

Python 小白的晋级之路 - 第四部分:掌握 Python 列表

Python 小白的晋级之路 - 第五部分:驾驭 Python 元组

Python 小白的晋级之路 - 第六部分:Python 的 if 语句

Python 实战:猜数字与智能计算

Python 小白的晋级之路 - 第七部分:掌握字典的魔法

Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓

Python 小白的晋级之路 - 第九部分:征服 for 循环的领域

Python 实战:年会抽奖程序,别作弊哈

Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界

图片

2024年02月