Python正则表达式

虽然Python字符串提供了众多实用的函数,但实际处理字符串时,常常需要更强大的工具。鉴于此,Python提供了一种用于复杂字符串处理的微型语言—正则表达式,但正则表达式并不是Python的一部分。

正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。实际上,正则表达式是一种简练描绘一组字符串的方式,可用于高效地执行常见的字符串处理任务,如匹配、替换和分拆字符串。

使用正则表达式编写一些逻辑验证非常方便,如:电子邮件及电话号码的格式验证。Python提供了re模块实现正则表达式的验证。

1、正则表达式的构成

正则表达式是包含元字符(metacharacter)的列表。

Python支持的正则表达式元字符和语法

模式字符串使用特殊的语法来表示一个正则表达式:

字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。

多数字母和数字前加一个反斜杠时会拥有不同的含义。

标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。

反斜杠本身需要使用反斜杠转义。

由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 '\t')匹配相应的特殊字符。

下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

2、re模块中一些重要函数

3、re模块中匹配对象的重要方法

执行结果:

例:编写一个程序,从键盘输入若干字符串,当输入done或quit则结束程序。

通常的方法为:

执行结果:

使用正则表达式用户输入done或quit结束程序:

执行结果:

例:假设要识别逗人的字符串:开头为一个或多个’ha’,末尾为一个或多个’!’

执行结果:

说明:本函数如果不使用正则表达式,将非常麻烦。

4、关于正则表达式的说明

Python的re模块规模庞大,其中有大量正则表达式函数可用于执行字符串处理任务,如匹配、分拆和替换;还有提高常用正则表达式处理速度的技巧,以及众多匹配常用字符的捷径。

re模块的文档可参见:https://docs.python.org/3/library/re.html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304G08T0R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券