• 正则表达式总结


    正则表达式总结

    正则表达式的语法里面分为字符、预定义字符、数量词、边界匹配、逻辑分组、特殊构造,如图:

    先介绍Python中支持正则表达式的re模块中的方法,使用什么函数都大同小异,重要的是正则表达式。

    函数描述
    compile(pattern)返回一个匹配完模式的对象
    search(pattern, string)在字符串中搜索模式
    match(pattern, string)从字符串开始匹配模式
    split(pattern, string)根据模式来分隔字符串
    findall(pattern, string)在字符串中找出所有匹配模式的
    sub(pattern, replace, string)在字符串中找出所有匹配模式的并且用replace来替换
    escape(string)特殊字符转义

    比如说邮箱,我们分析它的结构,其是一个前面为字符和数字组成,中间一个@,跟着字符和数字,后面是.com组成。所以简单的来写就是(w+)*@(w+)*.com,考虑到如果字符和数字中间可能会允许-或者.的存在,所以可以写为w+([-+.]w+)*@w+([-.]w+)*.com

    所以我们可以这么写代码:

    import re
    ma = re.search('w+([-+.]w+)*@w+([-.]w+)*.com', 'aq1#$125vqr&qqw.eq+we2@qq.comsadasd')
    print(ma.group())  # qqw.eq+we2@qq.com
    

    下面给出一些特定情况下使用的正则表达式例子。

    1. 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):

      ^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
    2. 汉字:

      [u4e00-u9fa5]{0,}$
    3. IP地址

      d+.d+.d+.d+
    4. 日期格式

      ^d{4}-d{1,2}-d{1,2}
    5. 密码(以字母开头,长度在 6~18 之间,只能包含字母、数字和下划线)

      ^[a-zA-Z]w{5,17}$

    当然还有很多,大家在匹配的时候具体问题具体分析,参考前面提到的那种图片。

    参考文章【个人总结】正则表达式语法及常用正则

  • 相关阅读:
    我所理解的readonly和const
    代码中的良好习惯从点滴做起
    常用正则表达式收集
    优化网站加载速度的14个技巧
    关于easyUI的模态对话框
    关于jq ajax封装以及ajax上传Webapi
    Linux完全卸载Oracle的操作步骤
    Linux下安装oracle的一般步骤
    CentOS Linux上安装Oracle11g笔记
    Oracle中建库时报Exception in thread main
  • 原文地址:https://www.cnblogs.com/George1994/p/7153101.html
Copyright © 2020-2023  润新知