返回顶部
首页 > 资讯 > 后端开发 > Python >Python正则表达re模块之findall()函数怎么使用
  • 716
分享到

Python正则表达re模块之findall()函数怎么使用

2023-07-02 15:07:12 716人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python正则表达re模块之findall()函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python正则表达re模块之findall()函数怎么使用”文章能帮助大

这篇文章主要介绍“python正则表达re模块之findall()函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python正则表达re模块之findall()函数怎么使用”文章能帮助大家解决问题。

一、re.findall函数介绍

它在re.py中有定义:

def findall(pattern, string, flags=0):    """Return a list of all non-overlapping matches in the string.    If one or more capturing groups are present in the pattern, return    a list of groups; this will be a list of tuples if the pattern    has more than one group.    Empty matches are included in the result."""    return _compile(pattern, flags).findall(string)

返回string中所有与pattern匹配的全部字符串,返回形式为数组

findall()函数的两种表示形式

import rekk = re.compile(r'\d+')kk.findall('one1two2three3four4')#[1,2,3,4] #注意此处findall()的用法,可传两个参数;kk = re.compile(r'\d+')re.findall(kk,"one123")#[1,2,3]

二、实例代码

后面会讲解代码里的各个部分,先列出来~

import re str = 'aabbabaabbaa'# 一个"."就是匹配除 \n (换行符)以外的任意一个字符print(re.findall(r'a.b',str))#['aab', 'aab']# *前面的字符出现0次或以上print(re.findall(r'a*b',str))#['aab', 'b', 'ab', 'aab', 'b']# 贪婪,匹配从.*前面为开始到后面为结束的所有内容print(re.findall(r'a.*b',str))#['aabbabaabb']# 非贪婪,遇到开始和结束就进行截取,因此截取多次符合的结果,中间没有字符也会被截取print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']# 非贪婪,与上面一样,只是与上面的相比多了一个括号,只保留括号的内容print(re.findall(r'a(.*?)b',str))#['a', '', 'a'] str = '''aabbab         aabbaa         bb'''     #后面多加了2个b# 没有把最后一个换行的aab算进来print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']# re.S不会对\n进行中断print(re.findall(r'a.*?b',str,re.S))#['aab', 'ab', 'aab', 'aa\n         b']

三、re.findall中正则表达式(.*?)

字符串是

str = 'aabbabaabbaa'

符号 . 就 是匹配除 \n (换行符)以外的任意一个字符

print(re.findall(r'a.b',str))#['aab', 'aab']

符号 * 前面的字符出现0次或以上

print(re.findall(r'a*b',str))#['aab', 'b', 'ab', 'aab', 'b']

符号.* 贪婪,匹配从.*前面为开始到后面为结束的所有内容

print(re.findall(r'a.*b',str))#['aabbabaabb']

符号.*? 非贪婪,遇到开始和结束就进行截取,因此截取多次符合的结果,中间没有字符也会被截取

print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']

符号(.*?) 非贪婪,与上面一样,只是与上面的相比多了一个括号,只保留括号的内容

print(re.findall(r'a(.*?)b',str))#['a', '', 'a']

关于带括号与不带括号的区别

import restring="abcdefg  acbdgef  abcdgfe  cadbgfe"#不带括号regex=re.compile("((\w+)\s+\w+)")print(regex.findall(string))#输出:[('abcdefg  acbdgef', 'abcdefg'), ('abcdgfe  cadbgfe', 'abcdgfe')]regex1=re.compile("(\w+)\s+\w+")print(regex1.findall(string))#输出:['abcdefg', 'abcdgfe']regex2=re.compile("\w+\s+\w+")print(regex2.findall(string))#输出:['abcdefg  acbdgef', 'abcdgfe  cadbgfe']
  • 第一个 regex 中带有2个括号,其输出list 中包含2个 tuple

  • 第二个 regex 中带有1个括号,其输出内容是括号匹配到的内容,而不是整个表达式所匹配到的结果。

  • 第三个 regex 中不带括号,其输出的内容就是整个表达式所匹配到的内容。

实际上这并不是python特有的,这是正则所特有的 , 任何一门高级语言使用正则都满足这个特点:有括号时只能匹配到括号中的内容,没有括号【相当于在最外层增加了一个括号】。在正则里面 "()" 代表的是分组的意思,一个括号代表一个分组,你只能匹配到 "()" 中的内容。

四、re.findall中参数re.S的意义

字符串变为(后面多加了2个b)

str = '''aabbab         aabbaa         bb'''

参数无re.S,没有把最后一个换行的aab算进来

print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']

参数有re.S,不会对\n进行中断

print(re.findall(r'a.*?b',str,re.S))#['aab', 'ab', 'aab', 'aa\n         b']

关于“Python正则表达re模块之findall()函数怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python正则表达re模块之findall()函数怎么使用

本文链接: https://lsjlt.com/news/342872.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python正则表达re模块之findall()函数怎么使用
    这篇文章主要介绍“Python正则表达re模块之findall()函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python正则表达re模块之findall()函数怎么使用”文章能帮助大...
    99+
    2023-07-02
  • Python正则表达re模块之findall()函数详解
    一、re.findall函数介绍 它在re.py中有定义: def findall(pattern, string, flags=0): """Return a list o...
    99+
    2024-04-02
  • python--模块之re正则表达式
    简介: 正则表达式本身是一个小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,我们可以通过直接调用来实现正则匹配。 正则表达式基础知识: --普通字符匹配自身 abc ----abc --元字符 . :匹...
    99+
    2023-01-30
    模块 正则表达式 python
  • python模块之re(正则表达式)
    匹配模式 re.ASCII同re.A,对应的内联标识为(a),用于向后兼容。使元字符\w, \W, \b, \B, \d, \D, \s和\S仅匹配ASCII字符。该模式只在string模式下有意义,在byte模式下将被忽略。 re.DE...
    99+
    2023-01-31
    模块 正则表达式 python
  • python正则表达式re模块怎么使用
    这篇文章主要介绍“python正则表达式re模块怎么使用”,在日常操作中,相信很多人在python正则表达式re模块怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python正则表达式re模块怎么使用...
    99+
    2023-07-02
  • python re模块 正则表达式
    导航: 1、正则表达式元字符2、预定义字符集3、re模块常用函数4、注意事项 正则表达式在很多语言里都支持,python也不例外,re模块就是正则表达式的应用 正则表达式对字符串的逻辑操作,主要是对字符串的一种过滤,用“元字符” 与“普通...
    99+
    2023-01-30
    模块 正则表达式 python
  • python正则表达式模块re
    正则表达式的特殊元素 匹配符号 描述 '.'(点dot) 在默认模式下,它匹配除换行符之外的任何字符。如果指定了DOTALL标志,则匹配包括换行符在内的任何字符 '^'(Caret) 匹配以字符串开头,...
    99+
    2023-01-30
    模块 正则表达式 python
  • 关于Python正则表达式模块之re模块
    目录前言:导入模块1.re.match() 函数(1)匹配单个字符(2)匹配多个字符 字符功能/说明位置*(3) 匹配开头和结尾2.re.search() 函数3.re.findal...
    99+
    2023-05-16
    Python正则表达式 Pythonre模块
  • Python正则表达中re模块的使用
    目录01、正则表达式1.1、限定匹配数量规则1.2、原生字符串1.3、分组匹配1.4、编译函数compile1.5贪婪模式和非贪婪模式01、正则表达式 学习正则表达式操作字符串,re...
    99+
    2024-04-02
  • python模块之re正则表达式详解
    一、简单介绍 正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。 正则表达式模式被编译成一系列的字节码...
    99+
    2022-06-04
    详解 模块 正则表达式
  • Python中的re正则表达式模块
    一、re模块的基本使用 Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符。正则表达式是用来匹配处理字符串的。 假如你需要匹配文本中的字符\,Python里的使用原生字符串...
    99+
    2024-04-02
  • python正则表达式(re模块)的使用详解
    目录前言re.match函数匹配单个字符匹配多个字符匹配开头结尾匹配分组re.compile 函数re.search函数re.findall函数re.finditer函数re.sub...
    99+
    2024-04-02
  • Python的re模块正则表达式操作
    这个模块提供了与 Perl 相似l的正则表达式匹配操作。Unicode字符串也同样适用。 正则表达式使用反斜杠" "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \...
    99+
    2022-06-04
    模块 操作 正则表达式
  • 详细解析python正则表达式re模块
    本篇文章给大家带来了关于python的相关知识,其中主要介绍了关于正则表达式中re模块的相关问题,下面一起来看一下,希望对大家有帮助。在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。...
    99+
    2022-06-14
    python
  • python的正则表达式和re模块详解
    目录一、正则表达式基础二、python re模块三、进阶总结一、正则表达式基础 二、python re模块 注意:正则表达式 != re eg: 注意:如果返回的是对象,则需要...
    99+
    2024-04-02
  • 如何分析Python正则表达式re模块
    本篇文章为大家展示了如何分析Python正则表达式re模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。简介正则表达式(regular expression)是可以匹配文本片段的模式。最简单的正则表...
    99+
    2023-06-17
  • Python使用re模块实现正则表达式操作指南
    目录一、前言二、匹配字符串1.使用match()方法进行匹配2.使用search()方法进行匹配3.使用findall()方法进行匹配三、替换字符串四、使用正则表达式分割字符串总结&...
    99+
    2024-04-02
  • 怎么理解并掌握python正则表达式和re模块
    这篇文章主要介绍“怎么理解并掌握python正则表达式和re模块”,在日常操作中,相信很多人在怎么理解并掌握python正则表达式和re模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解并掌握pyth...
    99+
    2023-06-01
  • Python正则表达式re模块详解(建议收藏!)
    目录前言match匹配字符串单字符匹配. 匹配任意一个字符\d 匹配数字\D 匹配非数字\S 匹配非空白\w 匹配单词、字符,如大小写字母,数字,_ 下划线\W 匹配非单词字符[ ]...
    99+
    2024-04-02
  • 如何使用python正则表达式模块中的re.findall()函数
    本篇内容主要讲解“如何使用python正则表达式模块中的re.findall()函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python正则表达式模块中的re.findall()函...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作