浅析python字符串模式匹配

电子说

1.2w人已加入

描述

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)
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分