python3-正则表达式基本使用方法(附案例)

本文介绍了Python3中的正则表达式基础,包括re模块的使用、单个字符和多个字符的匹配、开头和结尾匹配、分组以及re模块的高级用法如search、findall和sub。通过实例解析了各种匹配模式,并提供了练习题帮助巩固知识。
摘要由CSDN通过智能技术生成

初次写博客,有需要修改的地方请及时回复,长期进行更改

一、正则表达式概述

正则表达式,又称规则表达式,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。

正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,

就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

 

二、re模块操作

在Python中需要通过正则表达式对字符串进⾏匹配的时候,需要使⽤⼀个模块,名字为re

1.re模块的使用过程:

    #coding=utf-8
    # 导入re模块
    import re
 
    # 使用match方法进行匹配操作,匹配到的数据会被存放到result内
    result = re.match(正则表达式,要匹配的字符串)
 
    # 如果上一步匹配到数据的话,可以使用group方法来提取数据
    result.group()

2.使用案例:

2. re模块示例(匹配以HGS开头的语句)
 
    #coding=utf-8
 
    import re
 
    result = re.match("HGS","HGS.python3")
 
    result.group()

3.运行结果:

HGS

4.    说明

re.match()    能够匹配出以xxx开头的字符串

三、 匹配单个字符

上述了解到通过re模块能够完成使用正则表达式来匹配字符串

这里,将要讲解正则表达式的单字符匹配,下列表格最为扩展 不用死记硬背,了解即可.

字符 功能
. 匹配任意1个字符(除了\n)
[ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即 空格,tab键
\S 匹配非空白
\w 匹配单词字符,即a-z、A-Z、0-9、_
\W 匹配非单词字符,即 "/w"的补集,等价于 [^a-zA-Z0-9_]

示例1.[]:

    #coding=utf-8
     
    import re
     
    # 如果hello的首字符小写,那么正则表达式需要小写的h
    ret = re.match("h","hello Python") 
    print(ret.group())
     
     
    # 如果hello的首字符大写,那么正则表达式需要大写的H
    ret = re.match("H","Hello Python") 
    print(ret.group())
     
    # 大小写h都可以的情况
    ret = re.match("[hH]","hello Python")
    print(ret.group())
    ret = re.match("[hH]","Hello Python")
    print(ret.group())
    ret = re.match("[hH]ello Python","Hello Python")
    print(ret.group())
     
     
    #ret = re.match("hello","Hello",re.I)
    #print(ret.group())  #忽略大小写ignore-----Hello
     
    # 匹配0到9第一种写法
    ret = re.match("[0123456789]Hello Python","7Hello Python")
    print(ret.group())
     
    # 匹配0到9第二种写法
    ret = re.match("[0-9]Hello Python","7Hello Python")
    print(ret.group())
     
    ret = re.match("[0-35-9]Hello Python","7Hello Python")
    print(ret.group())
     
    # 下面这个正则不能够匹配到数字4,因此ret为None
    ret = re.match("[0-35-9]Hello Python","4Hello Python")
    # print(ret.group())

运行结果为:

    h
    H
    h
    H
    Hello Python
    7Hello Python
    7Hello Python
    7Hello Python

 

示例2. \d:

#coding=utf-8
 
import re
 
# 普通的匹配方式
ret = re.match("神州1号","神州1号发射成功") 
print(ret.group())
 
ret = re.match("神州2号","神州2号发射成功") 
print(ret.group())
 
ret = re.match("神州3号","神州3号发射成功") 
print(ret.group())
 
# 使用\d进行匹配
ret = re.match("神州\d号","神州1号发射成功") 
print(ret.group())
 
ret = re.match("神州\d号","神州2号发射成功") 
print(ret.group())
 
ret = re.match("神州\d号","神州3号发射成功") 
print(ret.group())

运行结果:

    神州1号
    神州2号
    神州3号
    神州1号
    神州2号
    神州3号

三、匹配多个字符

匹配多个字符的相关格式:

字符 功能
* 匹配前一个字符出现0次或者无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即至少有1次
?

匹配前一个字符出现1次或者0次,即要么有1次,要么没有

{m} 匹配前一个字符出现m次
{m,n}

匹配前一个字符出现从m到n次

##{m,} 加上逗号,一个字符出现m到无限次 

示例1:*

需求:匹配出,一个字符串第一个字

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值