• 技术文章 >Python技术 >Python基础教程

    python正则表达式是什么?怎么用?

    2020-10-27 16:28:56原创2678
    小编经常能在后台收到留言,其中大部分小伙伴询问关于正则表达式,小编结合很多内容,整理出来这篇通俗易懂,直击概要内容。大家可以来了解下。

    正则表达式简介:

    正则表达式(regex)用于探索给定字符串中的固定模式。我们想找到的模式可以是任何东西。可以创建类似于查找电子邮件或手机号码的模式。还可以创建查找以a开头、以z结尾的字符串的模式。

    创建模式:

    使用正则表达式时,首先需要学习的是如何创建模式。接下来将对一些最常用的模式进行逐一介绍。可以想到最简单的模式是一个简单的字符串。

    pattern = r'times'
    string = "It was the best of times, it was the worst of times."
    print(len(re.findall(pattern,string)))

    为了帮助创建复杂的模式,正则表达式提供了特殊的字符/操作符。下面来逐个看看这些操作符。

    1、操作符

    这在第一个例子中使用过,可用于找到符合这些方括号中条件的一个字符。

    Python中运行下列代码:

    pattern = r'[a-zA-Z]'
    string = "It was the best of times, it was the worst of times."
    print(len(re.findall(pattern,string)))

    2、点算符

    点运算符(.) 用于匹配除换行符以外的任何字符。运算符优点是,它们可以结合使用。

    3、一些元序列

    在使用正则表达式时,一些模式会经常被用到。因此正则表达式为这些模式创建了一些快捷方式。最常用的快捷方式如下:

    正则表达式函数

    目前为止,只使用了 re包中的findall 函数,其实还有很多其他函数。下面来逐个介绍。

    1、findall

    上面已经使用了 findall。这是我最常使用的一个。下面来正式认识一下这个函数吧。

    输入:模式和测试字符串

    输出:字符串列表。

    #USAGE:
    pattern = r'[iI]t'
    string = "It was the best of times, it was the worst of times."
    matches = re.findall(pattern,string)
    for match in matches:
    print(match)------------------------------------------------------------
    It
    It
    2、搜索
    输入:模式和测试字符串
    输出:首次匹配的位置对象。
    #USAGE:
    pattern = r'[iI]t'
    string = "It was the best of times, it was the worst of times."
    location = re.search(pattern,string)
    print(location)
    ------------------------------------------------------------
    <_sre.SRE_Match object; span=(0, 2), match='It'>
    可以使用下面编程获取该位置对象的数据:
    print(location.group())
    ------------------------------------------------------------
    'It'

    3、替换

    这个功能也很重要。当使用自然语言处理程序时,有时需要用X替换整数,或者可能需要编辑一些文件。任何文本编辑器中的查找和替换都可以做到。

    输入:搜索模式、替换模式和目标字符串

    输出:替换字符串

    string = "It was the best of times, it was the worst of times."
    string = re.sub(r'times', r'life', string)
    print(string)
    ------------------------------------------------------------
    It was the best of life, it was the worst of life.

    Python正则表达式应用范围:

    1、PAN编号

    2、查找域名

    3、查找电子邮件地址

    下面的正则表达式用于在长文本中查找电子邮件地址。

    match=re.findall(r'([\w0-9-._]+@[\w0-9-.]+[\w0-9]{2,3})',string)

    以上就是关于正则表达式的详细解析了,如需更多python实用知识,点击进入PyThon学习网教学中心

    专题推荐:python正则表达式
    品易云
    上一篇:Python基础:iter函数的两个参数 下一篇:关于Python中openpyxl使用iter_rows()的方法

    相关文章推荐

    • yield是什么意思?python yield的用法• python写文件及数据处理的简单操作• python开发环境哪个好用?如何搭建?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网