zoukankan      html  css  js  c++  java
  • 正则表达式

    模块:

      什么是模块: 模块就是一组功能的集合

     模块的类型:

      内置模块:不需要自己安装,python自带的模块

      第三方模块:需要我们自己安装的模块

      自定义模块:我们自己写的模块

      例:

      import os    #导入模块

      os.remove()   #删除文件

      os.rename()   #重命名文件

      模块为我们提供功能,这个操作的对象本来就存在,模块就是python提供给我们操作对象的方法.

      正则表达式的作用

        #从大段的文字中找到符合规则的内容

          #爬虫  从网页的字符串中获取你想要的数据

          #日志分析

        #判断某个字符是否完全符合规则

          #表单验证  手机号   qq号码  邮箱  银行卡  身份证号码  密码

      正则表达式只和字符串打交道.

      字符组:[ ]  写在中括号里面的内容,都出现在下面的某一个字符的位置上都是符合规则的.

      [0-9]  匹配数字

      [a-z]  匹配小写字母

      [A-Z]  匹配大写字母

      [a-zA-Z]   匹配大小写字母

      [a-zA-Z0-9]   匹配大小写字母数字

      [a-zA-Z0-9_]  匹配大小写字母数字下划线

      元字符

      w  匹配数字字母下划线   等价于[a-zA-Z0-9_]

      d  匹配所有的数字  [0-9]

      s  匹配所有的空白符   回车/换行符  制表符  空格  space[ ]

         匹配换行符  回车

         匹配制表符  tab 

         匹配空格       

      W D S 和w d s取反

        [wW] [dD] [sS]   是三组全集,匹配所有的字符

        表示单词的边界

      和转义字符相关的元字符

      w d s( )  W D S

      ^ $

      ^  匹配一个字符串的开始

      $  匹配一个字符串的结束

      .   匹配出换行符之外的所有字符

      []  只要出现在中括号内的内容都可以匹配

      [^]  只要不出现在中括号内的内容都可以匹配

        有一些特殊意义的元字符进入字符组中会恢复他本来的意义: . | [ ] ()

      a|b   或    符合a规则或者b规则的都可以被匹配

        如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面

        将更复杂的更长的规则写在最前面

      ()   分组    表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组里

    量词(6个)

      {n}  表示这个量词之前的字符出现n次

      {n,}  表示这个量词之前的字符至少出现n次

      {n,m}   表示这个量词之前的字符出现n--m次

      ?      表示匹配量词之前的字符出现0次或1次

      *    表示匹配量词之前的字符出现0次或多次

      +    表示匹配量词之前的字符出现1次或多次

      正则表达式的匹配特点:  贪婪匹配

        贪婪匹配会在允许的范围内取最长的结果

        非贪婪匹配/惰性匹配:  在量词后面加上?

          .*?x    匹配任意长度的非换行字符,直到遇见x停止

      关于字符串挪到python中的转义问题:只需要在工具中测试完毕,确认可以匹配以后,挪到python中在字符串的外面加上r,r' '即可.

    
    
  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    How to check if one path is a child of another path?
    Why there is two completely different version of Reverse for List and IEnumerable?
    在Jenkins中集成Sonarqube
    如何查看sonarqube的版本 how to check the version of sonarqube
    Queue
    BFS广度优先 vs DFS深度优先 for Binary Tree
    Depth-first search and Breadth-first search 深度优先搜索和广度优先搜索
    102. Binary Tree Level Order Traversal 广度优先遍历
    How do I check if a type is a subtype OR the type of an object?
  • 原文地址:https://www.cnblogs.com/Virous1887/p/9488129.html
Copyright © 2011-2022 走看看