python re.compile() 详解——Python正则表达式「建议收藏」

python re.compile() 详解——Python正则表达式「建议收藏」1概述当我们在Python中使用正则表达式时,re模块内部会干两件事情:编译正则表达式,如果正则表达式的字符串本身不合法,会报错;用编译后的正则表达式去匹配字符串。那么如果一个正则表达式要重复使用几千次,出于效率的考虑,我们是不是应该先把这个正则先预编译好,接下来重复使用时就不再需要编译这个步骤了,直接匹配,提高我们的效率2compile()预编译十分的简单,re.co…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1 概述

当我们在Python中使用正则表达式时,re模块内部会干两件事情:

  1. 编译正则表达式,如果正则表达式的字符串本身不合法,会报错;

  2. 用编译后的正则表达式去匹配字符串。

那么如果一个正则表达式要重复使用几千次,出于效率的考虑,我们是不是应该先把这个正则先预编译好,接下来重复使用时就不再需要编译这个步骤了,直接匹配,提高我们的效率

2 compile()

预编译十分的简单,re.compile()即可;演示如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/1/17 15:55
# @Author : Arrow and Bullet
# @FileName: compile.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/qq_41800366
import re


re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')  # 编译

A = re_telephone.match('010-12345').groups()  # 使用
print(A)  # 结果 ('010', '12345')
B = re_telephone.match('010-8086').groups()  # 使用
print(B)  # 结果 ('010', '8086')

编译后生成Regular Expression对象,由于该对象自己包含了正则表达式,所以调用对应的方法时不用给出正则字符串。

希望能够帮助到大家,有什么问题可以 直接评论即可,喜欢有用的话可以点个赞让更多的人看到,如果不够详细的话也可以说,我会及时回复的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188580.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 字典的定义以及常用方法

    Python 字典的定义以及常用方法定义(字典的key必须是不可变类型,也成为可hash类型,并且字典是无序的):info={'name':'egon','age':18,'se

    2022年7月5日
    20
  • jzoj 1146. 危险系数(acrobat)

    jzoj 1146. 危险系数(acrobat)1146.危险系数(acrobat) (FileIO): input:acrobat.in output:acrobat.out时间限制: 1000ms  空间限制: 262144KB  具体限制  GotoProblemSet题目描述   N(1输入第一行:输入一个整数N;第2到

    2022年6月11日
    38
  • steamvr插件怎么用_微信word插件加载失败

    steamvr插件怎么用_微信word插件加载失败本文基于SteamVR插件的开发文档翻译并总结SteamVR开发过程中的基本用法。本文总结汇总了SteamVR插件文档的内容,对文档部分内容进行了删减。目前仅仅只是翻译汇总,部分内容可能存在纰漏,后续会结合开发过程逐步更新修改此文章的内容。

    2022年9月4日
    4
  • linux 查看pid占用的端口_如何通过端口号查进程

    linux 查看pid占用的端口_如何通过端口号查进程Linux查看Java进程PID、端口号和内存占用脚本Linux查看Java进程PID、端口号和内存占用脚本背景查询PID查询占用端口查询内存占用百分比脚本使用背景正常情况下,一个jps-ml就可以查看机器上有多少Java进程以及它们的PID,如果还要看端口号,甚至内存占用,就还要配合netstat以及ps等查询,如果直接使用一个命令就能查出所有信息多…

    2022年8月23日
    6
  • C语言——五子棋人机对战

    C语言——五子棋人机对战         先说下背景吧,写下这篇博客时,博主大一在读,C语言初学者,寒假无事,便计划写几个由C语言实现的小游戏以提升编程能力。在这篇博客里分享的是可人机对战的五子棋游戏。         棋类游戏要实现初级的机器智能,其核心思想便是:感知(SENSE)->思考(THINK)->行动(ACT)。所以,本文将尽量以这个顺序介绍实现过程。(1)前期准备:    此程序中,机器…

    2022年6月29日
    25
  • win10如何设置不打开图片的情况下也能预览图片的缩略图

    win10如何设置不打开图片的情况下也能预览图片的缩略图右击此电脑–>属性–>高级系统设置–>点击高级–>点击性能下面的设置–>然后把视觉效果里:显示缩略图,而不是显示图标前的复选框勾上,OK。

    2022年5月8日
    369

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号