精华内容
下载资源
问答
  • python re
    千次阅读
    2021-11-18 13:26:26

    如果你要多行匹配,那么需要加上re.Sre.M标志. 加上re.S后, .将会匹配换行符,默认.不会匹配换行符. 代码如下:

    str = "a23b\na34b"
    
    re.findall(r"a(\d+)b.+a(\d+)b", str)
    #输出[]
    #因为不能处理str中间有\n换行的情况
    
    re.findall(r"a(\d+)b.+a(\d+)b", str, re.S)
    #s输出[('23', '34')]

     加上re.M后,^$标志将会匹配每一行,默认^$只会匹配第一行. 代码如下:

    str = "a23b\na34b"
    
    re.findall(r"^a(\d+)b", str)
    #输出['23']
    
    re.findall(r"^a(\d+)b", str, re.M)
    #输出['23', '34']
    更多相关内容
  • Python Re库的基本使用

    千次阅读 2022-03-31 21:50:48
    Re库是python库的标准库,主要用于字符串匹配 正则表达式的表示类型:r’text’ Re库的主要功能函数 函数 说明 re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象 re.match() 从...

    Re库的基本使用

    Re库是python库的标准库,主要用于字符串匹配

    正则表达式的表示类型:r’text’

    Re库的主要功能函数

    函数说明
    re.search()在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
    re.match()从一个字符串的开始位置起匹配正则表达式,返回match对象
    re.findall()搜索字符串,以列表类型返回全部能匹配的子串
    re.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
    re.finditer()搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素式match对象
    re.sub()在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
    re.search(pattern,string,flags=0)
    在一个字符串中搜索匹配正则表达式的第一个位置返回match对象

    pattern:正则表达式的字符串或原生字符串表示

    string:待匹配字符串

    flags:正则表达式使用时的控制标记

    常用标记说明
    re.I (re.IGNORECASE)忽略正则表达式的大小写,即使[A-Z]也能匹配小写字符
    re.M (re.MULTILINE)正则表达式中的^操作符能够将给定字符串的每行当作匹配开始
    re.S (re.DOTALL)使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。
    re.match(pattern,string,flags=0)
    从一个字符串的开始位置起匹配正则表达式返回match对象
    re.findall(pattern,string,flags=0)
    搜索字符串,以列表类型返回全部能匹配的子串
    re.split(pattern,string,maxsplit=0,flags=0)
    将一个字符串按照正则表达式匹配结果进行分隔返回列表类型

    maxsplit:最大分割数,剩余部分作为最后一个元素输出

    re.finditer(pattern,string,flags=0)
    搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素式match对象
    re.sub(pattern,repl,string,count=0,flags=0)
    在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

    repl:替换匹配字符串的字符串

    string:待匹配的字符串

    count:匹配的最大替换次数

    Re库的另一种等价用法

    函数说明
    regex.search()在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
    regex.match()从一个字符串的开始位置起匹配正则表达式,返回Match对象
    regex.findall()搜索字符串,以列表类型返回全部能匹配的子串
    regex.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
    regex.finditer()搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
    regex.sub()在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

    例如:

    >>> import re
    >>> regex=re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)')
    >>> s=regex.search('电话号码为123-456-7890')
    >>> s.group()
    '123-456-7890'
    

    match对象介绍

    简介:Match对象是一次匹配的结果,包含匹配的很多信息

    Match对象的属性

    属性说明
    .string待匹配的文本
    .re匹配时使用的patter对象(正则表达式)
    .pos正则表达式搜索文本的开始位置
    .endpos正则表达式搜索文本的结束位置

    Match对象的方法

    方法说明
    .group(0)获取匹配后的字符串
    .start()匹配字符串在原始字符串的开始位置
    .end()匹配字符串在原始字符串的结束位置
    .span()返回(.start(),.end)

    最小匹配操作符:在匹配的字符结束后跟一个问号

    操作符说明
    *?前一个字符0次或无限次扩展,最小匹配
    +?前一个字符1次或无限次扩展,最小匹配
    ??前一个字符0次或1次扩展,最小匹配
    {m,n}?扩展前一个字符m至n次(含n),最小匹配

    例如:

    >>> import  re
    >>> regex=re.compile(r'\d*')
    >>> #没有加?时
    >>> a=regex.search('123456')
    >>> a.group()
    '123456'
    >>> regex=re.compile(r'\d*?')
    >>> #加了?后
    >>> a=regex.search('123456')
    >>> a.group()
    ''
    >>> 
    
    

    展开全文
  • python re模块常见使用方法整理

    千次阅读 2021-03-17 02:10:28
    考虑到大家初学python,在对于方法的学习上,小编推荐以常见的方法为主要学习目标。本篇所带来的是re.sub和re.compile两种函数,下面就这两个部分分别展开讲解,具体内容如下展开。1、re.subre.sub用于替换字符串中...

    6f5ca74559e39ef94fd1539ddea3e449.png

    我们在用re模块时,根据不同的使用需求,我们要挑选不同的函数来匹配。考虑到大家初学python,在对于方法的学习上,小编推荐以常见的方法为主要学习目标。本篇所带来的是re.sub和re.compile两种函数,下面就这两个部分分别展开讲解,具体内容如下展开。

    1、re.sub

    re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :import re

    text = "JGood is a handsome boy, he is cool, clever, and so on..."

    print re.sub(r'/s+', '-', text)

    import re text = "JGood is a handsome boy, he is cool, clever, and so on..." print re.sub(r'/s+', '-', text)

    re.sub的函数原型为:re.sub(pattern, repl, string, count)

    其中第二个函数是替换后的字符串;本例中为'-'

    第四个参数指替换个数。默认为0,表示每个匹配项都替换。

    re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r'/s', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。

    2、re.compile

    可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:import re

    text = "JGood is a handsome boy, he is cool, clever, and so on..."

    regex = re.compile(r'/w*oo/w*')

    print regex.findall(text)   #查找所有包含'oo'的单词

    print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。

    import re text = "JGood is a handsome boy, he is cool, clever, and so on..." regex = re.compile(r'/w*oo/w*') print regex.findall(text) #查找所有包含'oo'的单词 print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。

    以上就是python re模块常见使用方法整理,当然re模块的方法比较多,本篇因为篇幅有限,会在之后的文章中不断更新这部分的使用。更多Python学习指路:

    展开全文
  • python re.match函数的使用

    千次阅读 2021-05-14 15:58:19
    1 re.match 说明 re.match() 从开始位置开始往后查找,返回第一个符合规则的对象,如果开始位置不符合匹配队形则返回None 从源码里面看下match 里面的内容 里面有3个参数 pattern ,string ,flags pattern : 是...

    1 re.match 说明

    re.match()  从开始位置开始往后查找,返回第一个符合规则的对象,如果开始位置不符合匹配队形则返回None

    从源码里面看下match 里面的内容

    里面有3个参数 pattern ,string ,flags 

    pattern : 是匹配的规则内容

    string : 要匹配的字符串

    flag : 标志位(这个是可选的,可写,可不写),用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等

    下面写一个demo

    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # pattern 匹配的规则
    re_content = re.match("Python", str_content)
    print(re_content)

    打印的结果如下

    可以看到匹配的的下标是(0,6) 匹配的内容是Python

    2 span 的使用

    如果想获取匹配的下标,可以使用span ,

    match span 的作用就是返回匹配到内容的下标

    使用方式如下

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # pattern 匹配的规则
    re_content = re.match("Python", str_content).span()
    print(re_content)

    打印结果如下

    3 group 的使用

    如果想获取匹配到结果的内容可以使用group ,注意使用group的时候就不要在使用span 了

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # pattern 匹配的规则
    re_content = re.match("Python", str_content)
    print(re_content.group())

    打印结果如下

    4 匹配不到内容的情况

    如下面的返回结果为None

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # pattern 匹配的规则
    re_content = re.match("python", str_content)
    print(re_content)
    # 或者
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # pattern 匹配的规则
    re_content = re.match("is", str_content)
    print(re_content)

    5 使用group 注意点

    注意当匹配不到内容的时候就使用group 或者span 的时候会报错,所以当使用group 的时候 先判断下是否匹配到内容然后在使用它

    例如匹配不到内容的情况下使用group

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # patterPn 匹配的规则
    re_content = re.match("python", str_content)
    print(re_content.group())

    这样会报错,报错内容如下

    添加是否匹配判断

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # patterPn 匹配的规则
    re_content = re.match("python", str_content)
    if re_content:
        print(re_content.group())
    else:
        print("没有匹配到内容")

    打印结果如下

    这样会走到else 里面就不会报错了

    6 flag 的使用

    写一个忽略大小写的情况

    import re  # 导入re 模块
    
    str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
    str_pattern = "Python"  # patterPn 匹配的规则
    re_content = re.match("python", str_content, re.I)
    if re_content:
        print(re_content.group())
    else:
        print("没有匹配到内容")

    打印结果如下:

    flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    1. re.I 忽略大小写
    2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
    3. re.M 多行模式
    4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
    5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
    6. re.X 为了增加可读性,忽略空格和 # 后面的注释

     

    展开全文
  • python repython re.match函数怎么来使用

    千次阅读 2021-03-17 16:24:17
    Python自1.5版本起增加了re正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。...
  • Python re正则表达式学习

    千次阅读 2021-01-15 01:01:11
    一、re.matchre.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。import retext = "JGood is a handsome boy, he is cool, clever, and so on..."m = re.match(r"(\w+)\s", text)if m:print m...
  • python re.compile() 参数详解

    千次阅读 2021-12-29 17:12:39
    python re.compile() compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。 语法格式为: re.compile(pattern[, flags]) 参数: pattern : 一个字符串...
  • re.sub( pattern, # 正则中的模式字符串 repl, # 替换的字符串,也可为一个函数 string, # 要被查找替换的原始字符串 count = 0 # 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配 ) 二、案例 import re ...
  • python re 查找字符串中是否含有汉字

    千次阅读 2020-12-03 14:26:04
    如何使用python中的re来查找字符串中是否含有汉字 import re pat = "[\u4e00-\u9fa5]+" s = ... if re.search(pat, s): print(True) else: print(False)
  • 主要介绍了python re模块findall()函数实例解析,具有一定借鉴价值,需要的朋友可以参考下
  • python re库的贪婪匹配和最小匹配

    千次阅读 2020-04-28 11:39:10
    import re m=re.search(r'PY.*N','PYANBNCNDN') m.group(0) 我们用re库中的search函数进行匹配,表示匹配以PY开头,以N结尾,中间可以有若干字符串的字符串。我们匹配的目标是字符串PYANBNCNDN 从这串字符串里我们...
  • Python re 正则表达式 匹配小数

    千次阅读 2019-06-06 14:57:15
    re提取文本中的浮点值,包括整数,小数,科学计数法。 import re re.findall(r'-?\d+\.?\d*e?-?\d*?','s')
  • 这篇文章主要介绍了python re模块匹配贪婪和非贪婪模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python贪婪和非贪婪 正则表达式通常用于在文本中...
  • match1 = re.search('bbb', fname) match2 = re.search('ccc', fname) #re.search()方法扫描整个字符串,并返回第一个成功的匹配。如果匹配失败,则返回None。 if match1: if match2: result.append(fname)
  • python re.split() 用法

    千次阅读 2020-04-26 02:11:04
    re.split() 作用:按照能够匹配的 子串(字符或字符串) 将 字符串 分割后返回 列表 。 变化过程:字符串 → 包含多个字符串的列表 格式:pattern:正则,string:被处理的字符串,maxsplit:最大出力次数(默认0不限次数)...
  • python re.compile() 详解——Python正则表达式

    万次阅读 多人点赞 2019-01-17 17:06:55
    当我们在Python中使用正则表达式时,re模块内部会干两件事情: 编译正则表达式,如果正则表达式的字符串本身不合法,会报错; 用编译后的正则表达式去匹配字符串。 那么如果一个正则表达式要重复使用几千次,...
  • Python re.match search findall区别

    千次阅读 2019-07-08 18:13:45
    平常查找文本内容,经常用到Python正则模块re的match/search/findall三个函数,容易混,现在写下来备用。 函数 定义 返回值 re.search(pattern, string, flags=0) 搜索第一个匹配的字符串 None或match对象 ...
  • python RE模块 匹配字符串

    万次阅读 2019-07-18 22:40:48
    使用re模块,首先需要导入re模块 import re 匹配字符串这个模块我就介绍几三个方法, match()函数 search()函数 findall()函数。接下来我分别来介绍和示例 1:match()函数 概括:match()方法用于从字符串开始处进行...
  • python re模块匹配字符串方法

    千次阅读 2019-11-07 19:35:35
    1. re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 import re line="this hdr-biz 123 model server 456" pattern=r"123" matchObj = re.match( pattern, line...
  • Python re.split方法分割字符串

    千次阅读 2019-07-10 10:12:45
    使用多个界定符分割字符串 问题 你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的... 当你需要更加灵活的切割字符串的时候,最好使用re.split()方法: >>> line = 'asdf fjd...
  • python re模块 re.match匹配不上的问题

    千次阅读 2019-10-24 00:43:23
    最近写python的时候发现了一些问题: import re expre = "(p>q)" a = re.search(r"([A-Za-z])>([A-Za-z])",expre) #有结果 p>q b = re.match(r"([A-Za-z])>([A-Za-z])",expre) #无结果 print(a) print...
  • st = re.sub("([0-9]+)","hello",st) print(st) +代表匹配满足前面的正则字符,即在0-9之间的数字。原字符中有三个数字,这里默认匹配越多越好,所以就全部匹配了。只形成一个hello,sub函数是...
  • Python RE库的贪婪匹配和最小匹配

    千次阅读 2018-11-23 22:48:58
    import re >>> match = re.search(r'PY.*N', 'PYANBNCNDN') >>> match.group(0) 'PYANBNCNDN' >>> 其中满足条件的有: 1. PYAN 2. PYANBN 3. ...
  • 文章目录需求Show Me The Code后语 需求 最终实现的效果如下: ...import re src = 'everything is alright.' re.sub('(every).*?(\\s.*\\.)',r'\1body\2',src) # everybody is alright. 后语 就这。 ...
  • python re 匹配 字符 出现的次数

    千次阅读 2019-08-18 09:30:46
    # python3 import re str_1 = "abca" matches = re.finditer(r'a',str_1) # 打印 a 字符出现的次数 print (matches)
  • 首先看下大家都知道的分割1.0 str.split() 单一分隔符,使用str.split()即可 str.split不支持正则及多个切割符号,...(Regular Expression,在代码中常简写为regex、regexp或RE)正则表达式通常被用来检索、替换那些
  • python re提取中文

    万次阅读 2018-04-02 00:05:54
    import restr = u'a你b好c'p = re.compile(ur'[\u4e00-\u9fa5]')res = re.findall(p, str)result = ''.join(res)print result
  • python re模块(正则表达式) sub()函数详解

    万次阅读 多人点赞 2019-05-14 20:21:38
    Python中的正则表达式方面的功能,很强大。 其中就包括re.sub,实现正则的替换。 功能很强大,所以导致用法稍微有点复杂。 所以当遇到稍微复杂的用法时候,就容易犯错。 所以此处,总结一下,在使用re.sub的时候,...
  • python re正则表达式匹配规则

    万次阅读 2018-10-31 18:10:17
    python re 在字符串中查找我们需要的字符,比如从网络爬取的数据看来,我们都需要正则表达式的帮助。 不同的语言具有不同的使用正则表达式方法,python是通过re来实现的。 re.serach() re.search(r’re_compile‘,...
  • 1. re模块的使用过程    #coding=utf-8    # 导入re模块    import...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 330,090
精华内容 132,036
关键字:

python re