正则表达式

1. 正则表达式(pattern):就是记录文本规则的代码,从头匹配对应的字符串数据 

2. 正则表达式匹配单个字符:根据表达式从头匹配对应的字符串数据

#导入模块

import re

# 使用match方法进行匹配操作

result = re.match(正则表达式,要匹配的字符串)

# result是pattern返回的实力对象和返回匹配的字符串,都过group函数方法提取数据

# 如果上一步匹配到数据的话,可以使用group方法来提取数据

result.group()

    # 1. pattern: 正则表达式

    # 2. string:要匹配的字符串

    # 3. 返回匹配结果的对象,使用group方法来提取数据

2.1匹配单个字符

  . :匹配任意1个字符(除了\n)

  [ ]:匹配[]中的任意一个字符

  \d :[0-9]表示匹配是0-9的之间的任意一个数据

  \D :匹配非数字,即不是数字的任意一个字符

  \s : 表示匹配空白字符,即空格,tab键

  \S :表示匹配是非空白单个字符

  \w : 表示匹配字母,数字,下划线,汉字

  \W : 表示匹配不是字母,数字,下划线,汉字(即匹配一些特殊符号)

3. 正则表达式匹配多个字符:修饰前一个字符文本格式

(1) * : 表示匹配前一个字符可能有0个或者多个,------即可有可无

    + :表示匹配前一个字符至少有一个或者多个,----即至少有一个

    ? : 表示匹配前一个字符可能出现0次或者1次,----即要么有1次,要么有0次

  {m}: 表示匹配前一个字符必须要出现m次

{m,n}: 表示匹配前一个字符至少出现m次,至多出现n次

{m, }: 表示匹配前一个字符至少出现m次

4. 正则表达式匹配开头结尾字符:

    (1) ^ : 匹配字符串中以什么开头

        $ : 匹配字符串中以什么结尾

       \b : 匹配单词的开始或结束,也就是单词的分界处,但是\b并不匹配这些单词分隔字符中的任何   一个,它只匹配一个位置

      [^x]: 除了以x开头的字符串,都匹配

5. 扩展:

\ : 表示对正则表达式的代码进行转义,识别为普通的字符串

\.: 表示对正则表达式的代码进行转义,让其成为是一个普通点字符串--> . : 因为匹配任意1个字符

6. 匹配分组:也叫子表达式

6.1

   | : 匹配左右任意一个表达式,使用分枝条件时,要注意各个条件的顺序匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了 

    (ab) : 将括号中的字符作为一个分组--->用group(1)# 获取第一个分组的数据,默认是0获取者整个数据

     \num : 引用分组num匹配到字符串,直接将分组里匹配的字符引用

     (?p) : 分组起别名

(?p=name) : 引用别名为name分组匹配到的字符串

 (?#comment) : 注释,这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

6.2扩展: 获取多个分组,分别获取分组里面的数据

  (ab) : 将括号中的字符作为一个分组--->用group(1)# 获取第一个分组的数据,默认是0获取者整个数据

 # 0: 表示获取整个数据

        print(match_obj.group(0))

 # 获取第一个分组数据

      print(match_obj.group(1))

  # 获取第二个分组数据

        print(match_obj.group(2))

7. re的高级使用:根据正则表达式查找对应的数据

(1) search: 只搜索一个对应的数据(匹配搜索对应对应的数据)---re.search(正则表达式,要匹配的字符串)

    group()方法提取数据只在,search和martch搜索~匹配数据的时候

(2) findall:返回的是匹配的结果zifuchuan类型列表---re.findall(正则表达式,要匹配的字符串)

(3) sub : 将匹配到的数据进行替换---re.sub(正则表达式,替换的内容,要匹配的字符串)

        count:表示替换次数,1:只替换一次  不加count默认替换全部

        re.sub("\d+", "200", "阅读数:1 评论数:10", count=1)

    (3.1)替换函数可以在原有的数据基础上加上指定的数据

        # add是替代内容的函数,通过函数进行修改数据

          def add(match_obj):

                 result = match_obj.group()

                 value = int(result) + 1

                 return str(value)

        result = re.sub("\d+", add, "阅读数:100")

(4) split:根据正则表达式进行分割数据---re.split(正则表达式,要匹配的字符串,maxsplit=0)

    maxsplit:最大分割次数,默认最大全部分割

8. re的高级使用总结

match:匹配对应的字符串,返回匹配对象和字符串,前后对应(pattern,string)

search:只搜索匹配一个对应的数据(匹配对应的pattern)

findall:直接返回匹配到的数据(匹配所有的pattern)

sub:将匹配到的数据进行替换(匹配对应的pattern,进行替换)可以传参数替换次数或替换add函数



正则表达式30分钟

http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html



xmind


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,308评论 4 46
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,105评论 0 99
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 9,486评论 0 13
  • #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...
    mapuboy阅读 5,551评论 0 51
  • 1.正则表达式概述 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regula...
    TENG书阅读 4,411评论 0 1

友情链接更多精彩内容