Python编程技巧 – 使用正则表达式

Python编程技巧 – 使用正则表达式

Python Programming Skills – Using Regular Expression

By Jackson@ML

Python以其强大的功能高居全球编程软件的榜首。它易于学习和使用,使其成为初学者绝佳语言。此外,Python还用于各种应用程序,包括Web开发、数据分析及人工智能等。

当今时代,越来越多的计算机软件在做模式识别的工作,尤其是语言模式识别,例如对单词及字符模式的识别。

如果能够指定一种模式,以其特定的字符来表示字符、数字和单词的组合,并利于学习,这就相当于一种新的语言范式,当然,这也是一种简单的语言。正则表达式应运而生,可以用很少的代码做很多的事情,可能用一两条语句就能完成复杂代码才能完成的任务。

1. 正则表达式

1) 正则表达式模式示例

正则表达式可以用简单的一系列字符来匹配一个单词,比如:用以下模式与单词”dog”匹配,这很好理解。

Dog

但是,如果单词多了,情况就变得复杂。假设,现在需要由多个匹配字母的组合:

  • 匹配一个字符”D”;
  • 匹配任意数量的“o”,但至少有一个;
  • 匹配一个“g“字符。

正则表达式就类似一个筛子,用特定字符的要求来筛出所需要的字符。
按照上述的需求,下面的正则表达式可以满足要求:

Do+g

但由于加号(+)是特殊字符,不会让正则表达式去匹配加号,而是与前面的o一起形成一个子表达式。因此,上面的正则表达式可以匹配的结果有以下几种情况:

Dog
Doog
Dooog
Doooog

而另一种重要的运算符是星号( * ),它表示零个或多个前面的表达式(字符),因此,表达式Do*g可以匹配以下多个字符串:

Dg
Dog
Doog
Dooooog

… …
请注意以上模式,可以匹配到字符串”Dg”, 但是应该了解,星号( * )是一种表达式修饰符,不可以单独使用。

2)正则表达式匹配模式

Python在 V1.5版本后,增加了re模块, 提供Perl风格的正则表达式;而这个re模块使得Python语言拥有全部的正则表达式功能。

2. 代码示例:匹配电话号码

我们来编写一段程序,在该程序中需要输入电话号码,但必须在输入后验证该号码是否格式正确,那么需要编写“电话号码”的验证函数。

如果电话号码为八位数,区号为前两位,那么可以用井号(#)及以下模式来验证电话号码:
###-####-####

根据正则表达式的语法,按以下代码来编写模式:

\d\d\d-\d\d\d\d-\d\d\d\d

反斜杠(\)充当转义字符。但此处的d不是使它变为文字字符,而是让它具有特殊含义。
子表达式\d表示匹配任何一位数字字符。

按以上电话号码的模式,编写一个验证电话号码的正则表达式模式,代码如下:

import re

pattern = r'\d\d\d-\d\d\d\d-\d\d\d\d' 
str = input('Enter your telephone number:')

if re.match(pattern, str):
    print('The number accepted!\nYour number is: ' + str)
else:
    print('Incorrect number! Try again.')

执行结果如下图所示:

在这里插入图片描述

该程序首先导入正则表达式软件包re, 对于Python的扩展库的导入,使用以下命令:

import re

re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none.

换句话说,程序中的match函数被re调用,并且使用pattern参数和目标字符串(str)进行比较。如果匹配,那么该函数返回一个match对象;否则返回none。(none可以被转换成布尔值false)。

该函数通用语法:

re.match(pattern, string, flags=0)

其中,pattern为匹配的正则表达式; string为要匹配的字符串;flags为标志位,用于控制正则表达式的匹配方式。如:是否为大小写,多行匹配等。

4. 小结

综上所述,为了匹配正则表达式,将要匹配的字符串进行对比,就能够筛选出需要的字符串;如需改进匹配模式,也可以修正和优化匹配规则,从而得到想要的字符串,达到事半功倍、提高效率的目的。

相关阅读:

  1. Python编程技巧 - 单字符函数
  2. Python编程技巧 - 使用组合运算符
  3. Python编程技巧 - 异常处理
  4. Python编程技巧 - 迭代器
  5. Python编程技巧 - Lambda函数
  6. Python编程技巧 - 使用字典
  7. Python编程技巧 - 使用字符串(Strings)
  8. Python编程技巧 - 对象和类
  9. Python编程技巧 - 使用列表(Lists)
  10. Python编程技巧 - 转换二进制、八进制和十六进制的函数
  11. Python编程技巧 - 函数入门
  12. 安装Visual Studio Code来安装Python应用程序
  13. Python编程技巧 - 安装最新版PyCharm来开发Python应用程序
  14. 2023最新版Python 3.12.0安装使用指南

相关推荐

  1. Python表达式

    2023-12-24 04:34:02       36 阅读
  2. Python 表达式

    2023-12-24 04:34:02       21 阅读
  3. python表达式

    2023-12-24 04:34:02       17 阅读
  4. Python表达式

    2023-12-24 04:34:02       14 阅读
  5. Python-表达式

    2023-12-24 04:34:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-24 04:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-24 04:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-24 04:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-24 04:34:02       20 阅读

热门阅读

  1. QB/T 2658-2017 卫生设备用台盆检测

    2023-12-24 04:34:02       31 阅读
  2. 如何用python实现完全二叉树

    2023-12-24 04:34:02       31 阅读
  3. PCIe 5.0相对于PCIe 4.0的优势差异对比

    2023-12-24 04:34:02       38 阅读
  4. Mac 生成Android签名证书 .keystore文件

    2023-12-24 04:34:02       48 阅读
  5. C++一维数组

    2023-12-24 04:34:02       40 阅读
  6. c# opencv 识别车牌号

    2023-12-24 04:34:02       42 阅读
  7. 【算法题】6. N字形变换

    2023-12-24 04:34:02       45 阅读
  8. 用大白话举例子讲明白云计算

    2023-12-24 04:34:02       33 阅读
  9. 深度学习在训练什么,什么是模型

    2023-12-24 04:34:02       38 阅读
  10. LSTM和GRU的区别

    2023-12-24 04:34:02       38 阅读