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

    正则表达式是匹配字符串内容的一种规则

    字符组 : [字符组]
    在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
    字符分为很多类,比如数字、字母、标点等等。
    假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
    正则
    待匹配字符
    匹配
    结果
    说明
    [0123456789]
    8
    True
    在一个字符组里枚举合法的所有字符,字符组里的任意一个字符
    和"待匹配字符"相同都视为可以匹配
    [0123456789]
    a
    False
    由于字符组中没有"a"字符,所以不能匹配
     
    [0-9]
     
    7
    True
    也可以用-表示范围,[0-9]就和[0123456789]是一个意思
     
    [a-z]
     
    s
     
    True
     
    同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示
     
    [A-Z]
     
    B
     
    True
     
    [A-Z]就表示所有的大写字母
     
    [0-9a-fA-F]
     
    e
     
    True
     
    可以匹配数字,大小写形式的a~f,用来验证十六进制字符

    字符:

     
    元字符
     
    匹配内容
    匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线
    s 匹配任意的空白符
    d 匹配数字
    匹配一个换行符
    匹配一个制表符
     匹配一个单词的结尾
    ^ 匹配字符串的开始
    $ 匹配字符串的结尾
    W
    匹配非字母或数字或下划线
    D
    匹配非数字
    S
    匹配非空白符
    a|b
    匹配字符a或字符b
    ()
    匹配括号内的表达式,也表示一个组
    [...]
    匹配字符组中的字符
    [^...]
    匹配除了字符组中字符的所有字符

    量词:?问号放在量词的后面,表示惰性匹配,匹配最少

    量词
    用法说明
    * 重复零次或更多次
    + 重复一次或更多次
    ? 重复零次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次

    惰性匹配:

    *? 重复任意次,但尽可能少重复
    +? 重复1次或更多次,但尽可能少重复
    ?? 重复0次或1次,但尽可能少重复
    {n,m}? 重复n到m次,但尽可能少重复
    {n,}? 重复n次以上,但尽可能少重复
    .*?x
    . 是任意字符 * 是取 0 至 无限长度 ? 是非贪婪模式。 何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在: .*?x 就是取前面任意长度的字符,直到一个x出现

     以下工作中常用:

    1、 匹配一段文本中的每行的邮箱
    http://blog.csdn.net/make164492212/article/details/51656638

    2、 匹配一段文本中的每行的时间字符串,比如:‘1990-07-12’;

    分别取出1年的12个月(^(0?[1-9]|1[0-2])$)、
    一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$

    3、 匹配qq号。(腾讯QQ号从10000开始) [1,9][0,9]{4,}

    4、 匹配一个浮点数。 ^(-?d+)(.d+)?$ 或者 -?d+.?d*

    5、 匹配汉字。 ^[u4e00-u9fa5]{0,}$

    6、 匹配出所有整数

  • 相关阅读:
    JAVA中 ReentrantReadWriteLock读写锁详系教程,包会
    传统企业的精益转型之路
    什么时候可以使用极限编程?
    “懒蚂蚁”效应在产品开发过程中的应用
    Vue.config.js配置 最新可用版本
    如何查找一个为NULL的MYSQL字段
    MYSQL 50 基础题 (转载)
    记录一下第一次写 50行 SQL代码
    jwtUtils顾名思意
    对于我们程序员来说,基本面是什么呢?
  • 原文地址:https://www.cnblogs.com/xiaoAzaina/p/9026178.html
Copyright © 2011-2022 走看看