• python正则表达式整理


    正则表达式在处理字符串时很大的作用,爬虫中也经常用到,下面就将一些常用正则表达式做一整理记录,方便以后查看。

    ^     匹配字符串开始,如^d表示以d开头的字符串

    .      表示匹配任意字符串

    *     表示前面的字符串可以重复多遍

    $    表示结尾字符串,比如以3结尾的字符串可以表示为:3$

      表示非贪婪模式,正则表达式默认为贪婪模式,贪婪模式下是反向匹配,即从后向前匹配。非贪婪模式正好相反

    +    限制字符出现次数,至少出现一次

    {}    限制字符出现次数

      {1}  字符出现一次  {2}出现两次  以此类推

      {1,}字符至少出现一次。其他相同格式,以此类推

           {1,3}字符至少出现一次,做多出现3次  。其他相同格式以此类推

    |      表示为  或  的意思

    ()    表示匹配模式,只匹配()里面,匹配时从最外层()开始

    s    匹配空格      s+   匹配多个空格

    S   匹配除空格以外的任意字符    S+ 表示匹配多个非空字符

    w   匹配a-z A-Z 0-9以及下划线中的任意字符

    W  匹配出a-z A-Z 0-9以及下划线以外的任意字符

    []    匹配括号中出现的任意字符

      [1357]  表示可以匹配1,3,5,7中任意一个字符

      [^]  表示取反,非    [^1]表示可以匹配除1以外的任意字符

           [A-Za-z0-9]  表范围,[A-Z]表示可以取A-Z中的任意一个字符   (1[34578][0-9]{9}) 表示字符串以1开头,

      第二个字符为3,4,5,7,8中任意一个字符,[0-9]表示0-9中任意一个数字,{9}表示重复[0-9]9次

    [u4E00-u9FA5]    匹配汉字。默认匹配一个汉字

               [u4E00-u9FA5] +   可匹配多个汉字

    d   匹配数字    d+ 代表匹配连续的数字      d{4}代表匹配四位数字

       匹配单词边界

    正则表达式应用:

    正则表达式常用于文本信息提取及用户输入信息校验等地方,下面的列子用于验证用户输入的用户名和qq号是否有效。

     1 import  re
     2 
     3 """
     4 正则表达式
     5 验证输入用户名和QQ号是否有效并给出对应的提示信息
     6 
     7 要求:用户名必须由字母、数字或下划线构成且长度在6~20个字符之间,QQ号是5~12的数字且首位不能为0
     8 
     9 """
    10 def qq_verify():
    11     username  =input("请输入用户名: ")
    12     qq = input("请输入qq号:  ")
    13     u1 = re.match(r'^[0-9a-zA-Zu4E00-u9FA5]{6,20}$',username)  #  u4E00-u9FA5匹配汉字
    14     if not u1:
    15         print('请输入有效的用户名')
    16     q1 = re.match(r'^[1-9]d{4,11}$',qq)
    17     if not q1:
    18         print('请输入有效的qq号')
    19     if u1 and q1:
    20         print('信息有效')
    21 if __name__ == '__main__':
    22 
    23     qq_verify()

    以上为常见正则表达式整理,不全的地方后面会继续追加。

    当你试图去用自己的言语去讲清一些事物时,你会明白对此事物的理解是融会贯通还是一知半解
  • 相关阅读:
    [Algo] 306. Check If Linked List Is Palindrome
    [Algo] 42. Partition Linked List
    [Algo] 20. Search In Unknown Sized Sorted Array
    [LC] 1167. Minimum Cost to Connect Sticks
    [LC] 212. Word Search II
    安装oracle developer 10g 时报错,提示must be 5.0, 5.1, 5.2 or 6.1 . Actual 6.2
    APP-INV-05577
    客户化的并发程序出现黄条警告,并无法输出内容
    EBS Concurrent Manager(并发管理器)异常处理[final]【转】
    oracle 通过透明网关gateway 连接sqlserver
  • 原文地址:https://www.cnblogs.com/1211-1010/p/11168932.html
Copyright © 2020-2023  润新知