re 模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re 模块相关的知识,希望对你有一定的参考价值。
re.findall() :用于从一个字符串中匹配指定的字符
In [18]: import re In [32]: re.findall(r‘ab‘, ‘abcdabcd‘) # 表示从字符串‘abcdabcd‘中匹配包含‘ab‘字符,结果以列表的形式返回 Out[32]: [‘ab‘, ‘ab‘] In [19]: re.findall(r‘^ab‘, ‘abcdefg‘) # 表示从字符串‘abcdefg‘中匹配以‘ab‘开头的字符,结果以列表的形式返回 Out[19]: [‘ab‘] In [52]: re.findall(r‘ab‘, ‘abcdABcd‘, re.I) # re.I 是一个标记,表示匹配的时候不区分大小写 Out[52]: [‘ab‘, ‘AB‘]
In [54]: re.findall(r‘foo$‘, ‘foo\nfoo\nfoo‘, re.M) # re.M 用于对每一行进行匹配,如果不加的话只会打印一个‘foo‘,也就是忽略了‘\n‘的换行作用 Out[54]: [‘foo‘, ‘foo‘, ‘foo‘]
re.match() :用法与 re.findall() 一致,但只匹配开头的位置,且 re.match() 返回的是一个对象,需要用 group() 方法来查看所匹配到的内容
In [32]: re.findall(r‘ab‘, ‘abcdabcd‘) # findall()可以匹配到所有指定的字符 Out[32]: [‘ab‘, ‘ab‘] In [34]: m = re.match(‘ab‘, ‘abcdabcd‘) # match()只能匹配开头的字符 In [35]: m.group() Out[35]: ‘ab‘
re.search() :用法与 re.findall() 一致,但 re.findall() 会匹配所有包含的字符,而 re.search() 只匹配一个包含的字符
In [42]: re.findall(r‘ab‘, ‘abcdabcd‘) Out[42]: [‘ab‘, ‘ab‘] In [43]: m = re.search(r‘ab‘, ‘abcdabcd‘) In [44]: m.group() # 同理用group()方法查看 Out[44]: ‘ab‘
re.sub() :用于替换字符串
In [45]: re.sub(r‘ab‘, ‘AB‘, ‘abcdabcd‘) # 表示将字符串‘abcdabcd‘中的‘ab‘都替换成‘AB‘ Out[45]: ‘ABcdABcd‘ In [46]: re.sub(r‘ab‘, ‘AB‘, ‘abcdabcd‘, count=1) # count=1 可以指定只替换一次 Out[46]: ‘ABcdabcd‘
re.compile() :用于将正则表达式编译成对象,并用它们来进行匹配
In [48]: p = re.compile(r‘ab‘) # 先将要匹配的内容(即正则表达式)进行编译 In [49]: p.findall(‘abcdabcd‘) # 这里就可以直接匹配,提高效率 Out[49]: [‘ab‘, ‘ab‘] In [50]: p.search(‘abcdabcd‘).group() Out[50]: ‘ab‘ In [51]: p.match(‘abcdabcd‘).group() Out[51]: ‘ab‘
以上是关于re 模块的主要内容,如果未能解决你的问题,请参考以下文章