python 正则表达式匹配次数 findall 用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 正则表达式匹配次数 findall 用法相关的知识,希望对你有一定的参考价值。
匹配次数用 {}界定
re.search 能产生group(), 可以访问每个组的字符串
re.findall 产生的结果是列表,其中的元素可以是字符串,也可以是元组
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Users\user>python Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1 900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import re >>> str="ATGTACGTACGTACTTTCCGT" >>> pat_str=re.compile("(GTAC){1}") >>> na = re.search(pat_str,x) >>> na <_sre.SRE_Match object; span=(2, 6), match=‘GTAC‘> >>> na.group(1) ‘GTAC‘ >>> na.group(2) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: no such group >>> na.group(0) ‘GTAC‘ >>> for i in na.group(): ... print (i) ... G T A C >>> str_x="ATGTACGTACGTACTTTCCGTTTCCCT" >>> str_y=re.compile("(GTAC){1}[GTAC]{5}") >>> na = re.search(str_y, str_x) >>> na.group() ‘GTACGTACG‘ >>> x="ATGTACGTACGTACTTTCCGTTTCCCTGTACCCCGGTTAAT" >>> y=re.compile("(GTAC){1}[GTAC]{5}") >>> na = re.search(y,x) >>> na.group() ‘GTACGTACG‘ >>> na.group(1) ‘GTAC‘ >>> nas = re.findall(y, x) >>> nas [‘GTAC‘, ‘GTAC‘] >>> re.sub(y,"NNNNNNNNN", x) ‘ATNNNNNNNNNTACTTTCCGTTTCCCTNNNNNNNNNTTAAT‘ >>> x ‘ATGTACGTACGTACTTTCCGTTTCCCTGTACCCCGGTTAAT‘ >>> y=re.compile("(GTAC){1}[GTAC]{5}", flags=re.I) >>> nag=re.search(y,x) >>> nag.group() ‘GTACGTACG‘ >>> for i in na.group(): ... print (i) ... G T A C G T A C G >>> for i in na.group(1): ... print (i) ... G T A C # 使用compile时设置flags 与 search时再使用 flags=re.I 效果一样 >>> na_re_I = re.search(r"(GTAC){1}[GTAC]{5}", x, flags=re.I) >>> na_re_I <_sre.SRE_Match object; span=(2, 11), match=‘GTACGTACG‘> >>> na_re_I.group() ‘GTACGTACG‘ >>> na_re_I.group(1) ‘GTAC‘ >>> y.findall(x) [‘GTAC‘, ‘GTAC‘] >>> y_all=re.compile("((GTAC){1}[GTAC]{5})", flags=re.I) >>> nas_all = re.findall(y_all, x) >>> nas_all [(‘GTACGTACG‘, ‘GTAC‘), (‘GTACCCCGG‘, ‘GTAC‘)] >>>
findall 效果参考:
http://blog.csdn.net/cashey1991/article/details/8875213
http://blog.163.com/[email protected]/blog/static/35265851201672431418177/
本文出自 “R和Python应用” 博客,请务必保留此出处http://matrix6ro.blog.51cto.com/1746429/1875383
以上是关于python 正则表达式匹配次数 findall 用法的主要内容,如果未能解决你的问题,请参考以下文章
Python连续多次匹配正则表达式(不是findall方式)
Python 正则表达式 findall 有效,但匹配不 [重复]
python 正则(re.compile()/re.findall())
python)使用正则表达式查找所有匹配项(从 re.search 更改为 re.findall)[重复]
Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法