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

    #事先说一下
    - re模块本身是用来操作正则表达式,与正则本身没有关系
    - 正则表达式是指一规则,匹配字符串的规则
    

    1.正则表达式regex

    • 正则表达式regex是指一规则,匹配字符串的规则,应用:
      • 匹配字符串
      • 表单验证
      • 爬虫:从网页源码获取一些链接,重要数据
    • 元字符
    • 量词

    1.规则

    ​ 1.1 基本匹配: 本身是哪一个字符,就匹配字符换中的哪一个字符

    ​ 1.2 字符组匹配[字符1字符2]规则: 一个字符组就匹配一个字符,只要这个字符出现在字符组内就会被匹配到

    • 字符组可以使用范围,所有的范围必须遵循ascii码从小到大来指定
    • 常用字符组范围[0-9]/[a-z]/[A-Z]/[a-zA-Z0-9]

    ​ 1.3 [0-9]==d 所有的数字

    ​ 1.4 d 与 [0-9] 与 [d]无区别

    2.元字符

    • []字符组 只要在中括号之内的所有字符都符合匹配规则
    • [^]非字符组 只要在中括号之内的所有字符都符合匹配规则
    • d 数字(digit)
    • w 标识符(word)表示大小写字母,数字,下划线
    • s 空格(space),表示空格,换行符,table制表符
    • (table) 仅仅制表符
    • (next) 仅仅换行符
    • D 匹配非数字
    • w 匹配非大小写字母,数字,下划线
    • S 匹配非空格,换行符,table
    • . 表示除了换行符的任意内容
    • 取消转义, .表示只匹配 .
    • [dD] 匹配任意字符
    • 表示一个字符的开始:s表示只匹配开头的s
    • $表示一个字符的结束:$e表示只匹配结束的e
    • ^abc$ 同时出现字符串只能是abc
    • | 表示或,注意如果两个规则有重叠部分,总是长的在前面,短的在后面
    • (|)括号限制|的作用域, 例 :www.(baidu|google).com,只会作用域括号内
    #帮助记忆#
    d w s 	(table) 
    (next)
    D W S
    .
    []   [^]
    ^    $
    |   ()
    

    3.量词

    • d{n} 数字n表示该原字符执行次数,且只能匹配这么多次

    • d{n,}数字n表示该原字符至少出现n次

    • d{n,m}数字n表示该原字符至少出现n次,至多出现m次

    • d? ?表示匹配0次或者1次 ,比如小数点

    • d+ +表示匹配1次或多次

    • d * *表示匹配0次或多次 ,比如匹配整数或者小数

    • 匹配小数

      d+(.d+)?
      #例:
      12.3432
      

    3.1 默认贪婪匹配 ,总是在符合匹配规则的范围内尽可能多的匹配

    3.2 非贪婪匹配,(惰性匹配):总是在符合匹配规则的范围内尽可能少的匹配

    • 元字符 量词 ? x

      表示按照元字符规则在量词范围内匹配,一旦遇到x就停止

      • .*?x 匹配任意字符,碰见x立即停止.
    • ? 出现在量词之后表示非贪婪匹配

    身份证小练习
    # 身份证号
    # 15位  全数字 首位不为0
    # 18位  前17位全数字 首位不为0  最后一位可能是x和数字
    [1-9](d{14}|d{16}(d|x))
    [1-9](d{16}[dx]|d{14})
    [1-9]d{14}(d{2}[dx])?
    
  • 相关阅读:
    连接Excel文件时,未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
    C# 中LinkLabel的简单使用
    体验安装金蝶K/3 Wise 13.0(图像)
    VS2008让自己掌控的定义编译项目后,自己主动添加到工具箱
    哥哥牟:由于道路的明星莫属,它救了我的女儿!
    【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例
    Ubuntu14.04 工作区设置
    Android定调的发展
    Spark1.0.0 学习路径
    oracle 11g 基于磁盘的备份rman duplicate
  • 原文地址:https://www.cnblogs.com/bigox/p/10796682.html
Copyright © 2011-2022 走看看