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

    正则表达式(Regular Expression)

    • 一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
    •  使用单个字符串来描述、匹配一系列   某个句法规则的字符串。
    • 繁琐但强大,学会后可提高工作效率和成就感

       它的祖先是  人类神经系统如何工作  的早期研究

     什么是字符串呢?    

      字符:字母,数字,符号,字   1、2、3、A、B、C、~!·#¥%……—*()——+等等

      字符串:有限字符的序列      序列:被排成一列的对象      

      字符串:有限字母,数字,符号,字等等的被排成一列的对象

       ^  匹配输入字符串开始的位置(或取反)

       $  匹配输入字符串结束的位置

      [0-9]    匹配单个数字

               至少一个数字然后abc

    • +  一次或多次    +最大方,老客气了,最少要一次 一定要给
    • *  零次或多次    *最自由  有或没有都可以 我都可以,你随便啊
    • ?  零次或一次   特别抠门的?  1个,不能再多了
    • {n}  匹配确定的次数
    • {n,m}  最少n次最多m次

     .  匹配任意字符,除了换行符

    d 匹配一个数字字符。

       独立单词  边界的意思/i   大小写不敏感

    只允许字母和空格:/^[a-zA-Z ]*$/

    邮箱格式:/([w-]+@[w-]+.[w-]+)/      w@w.w

    w 指数字英文加下划线

    re.match函数

    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。    要一样一样的哈

     

    print(re.match('www', 'www.runoob.com').span())
    #(0, 3)    元组

    re.search方法

    re.search 扫描整个字符串并返回第一个成功的匹配。

    re.compile 函数  

    compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

    编译:利用编译程序从源语言编写的源程序产生目标程序的过程  (源程序->目标程序)

    格式:  re.compile(pattern[, flags])

    flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:    是.哦!

    1. re.I 忽略大小写
    2. re.L 表示特殊字符集 w, W, , B, s, S 依赖于当前环境
    3. re.M 多行模式
    4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
    5. re.U 表示特殊字符集 w, W, , B, d, D, s, S 依赖于 Unicode 字符属性数据库
    6. re.X 为了增加可读性,忽略空格和 # 后面的注释

    findall

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

    findall(string,pos,endpos)      #后2个位可选参数,为起始和结束  默认为0和默认字符串长度

    pattern = re.compile(r'd+')
    pattern.findall('run88 oob123 google456', 0, 10)
    #['88', '12']

     

    a = 'China_net809Chinna2018Nanjing'    #要匹配的字符串
    b = re.findall(r'd{4}Nanjing', a)     #字符串在后
    print(b)    #['2018Nanjing']
    a=re.compile(r'd{4}')          #要匹配的格式
    b=a.findall('China_net809Chinna2018Nanjing')      #格式在前        格式都在前
    print(b)    #['2018Nanjing']

    Python中的原生字符串"r"

     Python中字符串前面加上 r 表示原生字符串      

     假如你需要匹配文本中的字符””,那么使用编程语言表示的正则表达式里将需要4个反斜杠””:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。 

     

    python中""和'的区别

    如果是要表示字符串,那么没什么区别。但是,but  想要有'就要" 

    print("Let's go")
    print('你说"加油陌生人"')    

     

     

     

     

     

     

     

     

     

    re_path和path

    功能一样,但前者在写url可用正则表达式,所以更牛逼

    在正则表达式中定义变量,需要使用圆括号括起来。这个参数是有名字的,那么需要使用(?P<参数的名字>)。然后在后面添加正则表达式的规则。

    命名Python正则表达式组的语法

    (?P<name>pattern),其中name是组的名称

    r"^list/(?P<year>d{4})/$"      #形如  list/5555/  
  • 相关阅读:
    【转载】使用铁哥SmartFlash快速开发方案:66行代码搞定抽奖程序!
    WPF 数据绑定方法分类
    jquerywebsocket
    [转载]as3中单例模式如何设计
    .字符的匹配识别
    paip.提升用户体验搜索功能设计
    paip.提升安全性登录密码出错次数检测
    paip.html 及css调试工具debugbar
    paip.项目开发效率提升之思索
    paip.c#图片裁剪
  • 原文地址:https://www.cnblogs.com/zhang1422749310/p/11283670.html
Copyright © 2011-2022 走看看