基于 Python 的正则表达式

正则表达式是一个非常强大的字符串处理工具,几乎所有关于字符串的操作都可以使用正则表达式来完成,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。下面,我来介绍一下 Python 中的正则表达式是怎么使用的。

它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了。否则,该字符串就是不合法的。

例如:我们判断一个字符串是否是合法的 Email 的方法是:

  1. 创建一个匹配 Email 的正则表达式;
  2. 用该正则表达式去匹配用户的输入的字符是否符合。

相关模块

我们使用 re 模块来实现正则表达式操作。 这个模块是 Python 内置模块,不需要我们另外安装。

入门实例

这里有一个字符串:

“shuwsjiwswmxpythonixkssiwmswkwxkxkx”

我想要知道里面是否含有单词 “ python ”,我们这样处理:

导入相关模块:

import re

准备好要处理的字符串:

s="shuwsjiwswmxpythonixkssiwmswkwxkxkx"

编写正则表达式:

pat="python"

进行匹配并打印结果:

result=re.search(pat,s)
print(result)

执行结果如下:

<re.Match object; span=(12, 18), match='python'>

这样就表示成功匹配到,并且标示了在字符串中的具体位置(12, 18)。

正则表达式通用知识

这里只讲基本用法,避免部分人之前还不熟悉正则表达式,导致无法往后看。

已经掌握的圈友可以忽略这一部分。

正则表达式中,我们需要了解两个概念:原子元字符

原子

原子是表达式中基本组成单位,每个表达式中至少要包含一个原子。

简单的说,我们要匹配的规则,都是由一个个原子组成。

例如:要匹配一个数字,对应的就是以数字作为原子。

匹配一个确定的字符串

在这里直接以要匹配的字符串作为原子。

例如在一堆名字中匹配“王五”:

    s="张三李四王五赵六"
    pat="王五"
    result=re.search(pat,s)
    print(result)

执行结果:

<re.Match object; span=(4, 6), match='王五'>

成功匹配。

匹配一个通用字符
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.01 继续阅读