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

    正则表达式主要是进行模糊匹配

    1、普通字符       完全匹配

    2、元字符    ^   $  *  +  ?  {}  []  | 

    .    通配符    什么都可以代替数字、字母等等   出来换行符      代表任意一个字符例如:

    1 import re
    2 a = 'sddfsaljhhxsdlkjfeojfk'
    3 b = re.findall('al...x',a)
    4 print(b)
    5 输出:
    6 ['aljhhx']

    ^   以什么开头  只能在字符串的开头开始匹配   例如:

    1 import re
    2 a = 'sddfsaljhhxsdlkjfeojfk'
    3 b = re.findall('^s..f',a)
    4 print(b)
    5 输出:
    6 ['sddf']

    $  以什么结尾  在字符串的结尾  例如:

    1 import re
    2 a = 'sddfsaljhhxsdlkjfeojfk'
    3 b = re.findall('jfk$',a)
    4 print(b)
    5 输出:
    6 ['jfk']

    *  挨着的前面的重复0到无穷次    + 出现1到无穷次   例如:

    1 import re
    2 a = re.findall('alex*','akdkfjaleserdf')
    3 print(a)
    4 输出:
    5 ['ale']
    1 import re
    2 a = re.findall('alex+','akdkfjalexxxxxxxxxxxserdf')
    3 print(a)
    4 输出:
    5 ['alexxxxxxxxxxx']
    1 import re
    2 a = re.findall('alex+','akdkfjaleserdf')
    3 print(a)
    4 输出:
    5 []

    ? 0个或者1个   例如:

    1 import re
    2 a = re.findall('alex?','akdkfjaleserdf')
    3 print(a)
    4 输出:
    5 ['ale']

    { }      {0,} ==*     {1,}==+       {0,1} ==?    {6}  重复6次       {1,6} 重复1到6中间的次数   例如:

    1 import re
    2 a = re.findall('alex{0,6}','akdkfjaleserdf')
    3 print(a)
    4 输出:
    5 ['ale']

    默认都是贪婪匹配,加上?变为非贪婪匹配匹配的越少越好    例如:

    1 import re
    2 a = re.findall('alex*?','akdkfjalexxxxserdf')
    3 print(a)
    4 输出:
    5 ['ale']
    1 import re
    2 a = re.findall('alex+?','akdkfjalexxxxserdf')
    3 print(a)
    4 输出:
    5 ['alex']

    元字符之字符集  [  ]   字符集里面没有特殊字符

    第一个功能或者的意思 例如:

    1 import re
    2 a = re.findall('a[abc]','ackljlkab ajjcjjajjcba ab')
    3 print(a)
    4 输出:
    5 ['ac', 'ab', 'ab']

    在字符集中的功能符号: -      ^

      -  表示范围   例如:

    1 import re
    2 a = re.findall('a[a-z]','au')
    3 print(a)
    4 输出:
    5 ['au']
    1 import re
    2 a = re.findall('a[a-z]*','auasdfsdfs9')
    3 print(a)
    4 输出:
    5 ['auasdfsdfs']

    ^   取反  例如:

    1 import re
    2 a = re.findall('a[^a-z]','a6uasdfsdfs9')
    3 print(a)
    4 输出:
    5 ['a6']

    [^a-z]   表示非a-z  例如:

    1 import re
    2 a = re.findall('([^()]+)','12+(34*6+2-5*(2-1))')
    3 print(a)
    4 输出:
    5 ['(2-1)']

    让有意义的变为没有意义,没有意义的变为有意义的

    读取文档   用S 去掉空格等  返回列表

    1 import re
    2 f = open('TEXT','r',encoding='utf-8')
    3 f_read = f.read()
    4 a = re.findall('S+',f_read)
    5 print(a)
    6 f.close()
    7 输出:
    8 ['NIHAO拉时间段佛阿萨德', '第三方年卡就是电话是的快乐风男', '奥德赛可发货呢', '大师傅nlas', '路上看到合法jes']

    d  匹配任何十进制数;它相当于类[0-9]

    D  匹配任何非数字字符;它相当于类[^0-9]

    s   匹配任何空白字符;它相当于类[ fv]

    S  匹配任何非空白字符;它相当于类[^ fv]

    w   匹配任何字母数字字符;它相当于类[a-zA-Z0-9_]

    W   匹配任何非字母数字字符;它相当于类[^a-zA-Z0-9_]

        匹配一个特殊字符边界,比如空格,&,#等

  • 相关阅读:
    ES权威指南1
    JS易错知识点
    配置中心
    Elasticsearch 2.3.2 从oracle中同步数据
    Logstash同步Oracle数据到ElasticSearch
    从Oracle到Elasticsearch
    JS实现音乐播放器
    压力测试
    spring boot + quartz 集群
    用户体验很好的密码校验js
  • 原文地址:https://www.cnblogs.com/ch2020/p/12405278.html
Copyright © 2011-2022 走看看