0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析python字符串模式匹配

jf_78858299 来源:梯阅线条 作者:小梯子 2023-02-23 15:04 次阅读

python字符串可以通过re模块的模式匹配来处理文本。

1.1 match()

用法

match(pattern, string, flags=0)

描述

从字符串(string)的开头应用模式(pattern),返回匹配对象(match),如果未找到匹配内容,返回None。

入参

pattern:模式,即要匹配的规则,或者叫正在表达式

string:字符串,即要匹配的内容

flags:标志,用于控制正则表达式的匹配方式,比如是否区分大小写,多行匹配等,默认为0。

出参

匹配成功,返回match,否则,返回None。

示例

下面例子,搜索子字符串(pat),以’梯阅线条’开始,后面跟着0个或几个空格或制表符([ \\t]*),注意是用[]包含, 表示0个或几个,接着有任意字符并将其保存至匹配的group中,注意任意字符用’. ’表示,()表示匹配的group,第1个()表示group(1),第n个()表示group(n),最后以’学习’结尾。

>>> import re
>>> pat='梯阅线条[ \\t]*(.*)学习'
>>> strs='梯阅线条软件测试梯阅线条python字符串re模块模式匹配学习'
>>> mat=re.match(pat,strs)
>>> print(mat)
...

1.2 group()

用法

group([group1, ...]) -> str or tuple.

描述

索引或名称返回匹配的字符串或元组。

入参

不送或送0,表示返回整个字符串。

送groupn,表示返回点n个分组,这里的n对应正则表达式里面的()的位置,从1开始。

送group1,group3,表示返回第1和第3个分组组成的元组。

出参

字符串或元组。

示例

>>> import re
>>> pat='/(.*)/(.*)/(.*)'
... 
>>> strs='/梯阅线条/python学习/re模块group'
... 
>>> re.match(pat,strs)
...

1.3 groups()

用法

groups(self, /, default=None)

描述

返回包含匹配的所有子组的元组,从1开始。

入参

default,表示未匹配到的分组的默认值,默认为None。

出参

元组

示例

注意:?(和*类似)表示前面的内容为0个或几个。d+表示匹配数字,.*表示匹配任意内容(此时没有匹配到这返回空字符非None)。

>>> re.match('/(.*)/(.*)/?(d+)?','/梯阅线条/python学习').groups()
...                        
('梯阅线条', 'python学习', None)
>>> re.match('/(.*)/(.*)/?(d+)?','/梯阅线条/python学习').groups('groups用法')
...                        
('梯阅线条', 'python学习', 'groups用法')
>>> re.match('/(.*)/(.*)/?(.*)?','/梯阅线条/python学习').groups()
...                        
('梯阅线条', 'python学习', '')
>>> re.match('/(.*)/(.*)/*(d+)*','/梯阅线条/python学习').groups()
...                        
('梯阅线条', 'python学习', None)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33155
  • 字符串
    +关注

    关注

    1

    文章

    552

    浏览量

    20135
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83476
收藏 人收藏

    评论

    相关推荐

    输入字符串与已有字符串匹配

    一个基于LABVIEW的网上预约系统,先把所有人的学号放在一个字符串组,当输入一个学号时,怎么从已有的学号组中匹配自己输入是否正确?
    发表于 03-06 21:07

    关于匹配字符串的问题.

    如题,如何在一个一维字符串数组中提取所有带有小数点的字符串,思路我已经想好了,可是正则表达式的匹配指令没看懂,烦劳哪位大佬帮帮忙,嘻嘻
    发表于 02-01 11:50

    Python字符串的特点和修改字符串的常见四种方法

    Python中修改字符串的几种方法
    发表于 02-26 16:52

    Python字符串与变量名

    字符串字面量与变量名的区别Python解释器如何判别字符串字面量与变量名字符串字面量的引号不是值的一部分
    发表于 05-22 07:23

    匹配模式拆分组合字符串

    匹配模式拆分组合字符串,大家可以参考一下!
    发表于 12-11 14:09

    字符串拆分

    串口连续传来如是字符串”V-12.98C0.18“希望把字符串拆分为V后的为一组数,C后的为一组数。上述字符串应该拆为-12.98和0.18。我尝试了用匹配
    发表于 05-22 11:57

    有什么方法可以快速实现模式字符串匹配查找吗?

    基于IXP2400和FPGA的系统结构是怎样的?模式字符串匹配过程是如何实现的?有什么方法可以快速实现模式字符串
    发表于 04-14 06:22

    2.2 python字符串类型

    2.2 python字符串类型1. 如何定义字符串字符串Python中最常用的数据类型之一。使用单引号或双引号来创建
    发表于 02-17 17:12

    聊聊字符串

    就是字符格式。有些场景需要使用多个处理器协同工作,比如单片机+openmv,它们之间需要通信,可以采用字符格式的编码方式。操作字符串,无非是两件事儿:生成字符串与解析
    发表于 02-28 06:52

    学习Tcl来这里:字符串匹配

    这里可以看到[a-z0-9]和[a-z][0-9]是不同的,前者匹配一个字符,后者匹配两个字符,其种一个为字母,另一个为数字,所以字符串9s
    的头像 发表于 09-21 11:14 5267次阅读

    什么是复制字符串Python如何复制字符串

    连续几篇文章都在写 Python 字符串,这出乎我的意料了。但是,有的问题,不写不行,特别是那种灵机一动想到的问题,最后你发现,很多人根本不懂却又误以为自己懂了。那就继续刨根问底,探究个明白
    发表于 11-25 10:32 2780次阅读

    2.2 python字符串类型

    2.2 python字符串类型 1. 如何定义字符串字符串Python中最常用的数据类型之一。 使用单引号或双引号来创建
    的头像 发表于 02-17 17:08 1232次阅读

    python字符串序列操作和不可变性

    初识python字符串序列操作和不可变性。python字符串序列操作为序列通用操作,python字符串
    的头像 发表于 02-23 15:01 637次阅读

    python字符串有哪些特定方法

    python字符串序列操作也适用于列表和元组。 python字符串还有独有方法,即字符串对象的函数,其他对象不可调用,只有
    的头像 发表于 02-23 15:02 486次阅读

    Python2与Python3中对字符串的支持

    其实Python3中对字符串支持的改进,不仅仅是更改了默认编码,而是重新进行了字符串的实现,而且它已经实现了对UNICODE的内置支持,从这方面来讲Python已经和JAVA一样优秀。
    的头像 发表于 07-05 16:15 529次阅读