re.findall(pattern, string, flags=0)搜索字符串,以列表类型返回全部能匹配的子串 。
【python正则表达式详解 电话号码正则表达式语法】参数同上 。
re.split(pattern, string, maxsplit=0, flags=0)将一个字符串按照正则表达式匹配结果进行分割,返回列表类型 。
- maxsplit:最大分割数,剩余部分作为最后一个元素输出
re.finditer(pattern, string, flags=0)搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素都是Match对象 。参数同上 。
for m in re.finditer(r'[1-9]d{5}', 'A100001 B100002'):if m:print(m.group(0))re.sub(pattern, repl, string, count=0, flags=0)在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串 。- repl:替换匹配字符串的字符串
- count:匹配的最大替换次数
sub = re.sub(r'[1-9]d{5}', ',hello', 'A100001 B100002')print(sub)Re库的等价用法上面讲解了Re库六种基本方法的函数式用法,下面介绍另一种等价的面向对象的用法:match = re.search(r'[1-9]d{5}', 'A100001')cmp = re.compile(r'[1-9]d{5}')match = cmp.search('A100001')第一种是函数式用法,一次操作可以完成任务;第二种是面向对象用法,先将正则表达式的字符串形式编译成正则表达式对象,再进行方法操作 。两种方法都是可以的,了解即可 。Re库的贪婪匹配机制在实际使用过程中,我们会遇上一个问题,如下:
match = re.search(r'PY.*N', 'PYANBNCN')对这样一个字符串,原则上是可以返回三个子串,即’PYAN’,’PYANBN’,’PYANBNCN’ 。但是我们调用match.group(0)查看时,该返回哪一个呢?Re库默认采用贪婪匹配机制,返回匹配中最长的子串,也就是返回’PYANBNCN’了 。
那又有一个问题了,当我们想要输出最短的子串该怎么办呢??
我们只需在操作符后面添加?即可输出最小匹配了:

最小匹配
match = re.search(r'PY.*?N', 'PYANBNCN')if match:print(match.group(0))小结本章讲解了Python中正则表达式Re库的入门级使用,正则表达式并不是Python所独有的,很多地方都可以使用,在学习完Re库后对其他语言和任务也都有一定的帮助 。推荐阅读
- python教程 疯狂的python建议怎么样
- 手机qpython3使用教程 如何在手机用qpython3
- vscode python里面没有pygame python是一种编程语言
- 甜蜜暴击正则决赛是第几集 这部浪漫校园剧你看了吗
- 铁丝的化学表达式是什么 铁丝的化学表达式
- 上古密约侯正则喜欢的人是谁 上古密约侯正则喜欢得的是百里鸿熠吗
- 上古密约侯正则的身份是要妖吗 上古密约侯正则的身份是什么
- 侯正则的结局是什么 和另外四神履行千年前保卫天下的约定让世间重获安定
- python与php的区别 专家解析python与php的四大区别
