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

    2017-07-24 13:16:17

    正则表达式是用来更简洁的匹配查找字符串的一种语言。使用正则表达式可以更方便的处理字符串。在Python中使用re库可以进行字符串的正则匹配。正则表达式本身其实就是一个字符串,不过这个字符串里有一些语法,通过这些语法的约束,可以像解迷一样将字符串中自己需要的部分提取出来。

    一、语法

    二、常用的函数

    re.search(正则表达式,string) : 返回值为真或者假

    re.findall(正则表达式,string) : 返回值为一个列表,将字符串中所有符合条件的字串都返回

     三、练手

    import re
    
    x = '[asdf]: 我的全部的尊严就在于思想'
    
    #匹配空格后的所有字符
    # . : 通配符
    # * :匹配任意多个字符
    # (): 最终返回的是()中匹配的内容
    y = re.findall('.* (.*)', x)
    
    print(y)
    import re
    
    x = '[asdf]: 我的全部的尊严就在于思想'
    
    #匹配[]中的所有字符
    # . : 通配符
    # * :匹配任意多个字符
    # (): 最终返回的是()中匹配的内容
    y = re.findall('.*[(.*)]', x)
    
    print(y)
    import re
    
    x = 'From <h>window@microsoft.com<h> DA GD'
    
    # 匹配<h>...<h>中的内容,注意必须是连着的,不能有空格
    # ^ : 开头
    # . : 通配符
    # S : 匹配除空格外的所有字符
    # * :匹配任意多个字符
    # + :匹配至少一个字符
    # (): 最终返回的是()中匹配的内容
    
    pattern = re.compile('(?<=<h>)S+(?=<h>)')
    
    y = re.findall(pattern, x)
    
    print(y)
    import re
    
    x = 'From window@microsoft.com DA GD'
    
    # 匹配From开头的邮箱号(这里必须使用懒惰方式!)
    # ^ : 开头
    # . : 通配符
    # S : 匹配除空格外的所有字符
    # * :匹配任意多个字符
    # + :匹配至少一个字符
    # (): 最终返回的是()中匹配的内容
    
    pattern = re.compile('^From.*?(S+@S+)')
    
    y = re.findall(pattern, x)
    
    print(y)
  • 相关阅读:
    第一次做Java程序注意事项
    数制学习笔记
    1228作业
    1226作业(转为十进制)
    [SDOI2010] 古代猪文 (快速幂+中国剩余定理+欧拉定理+卢卡斯定理) 解题报告
    Miller-Rabin
    STL整理之set
    [HNOI2008] GT考试(DP+矩阵快速幂+KMP)
    [JZOJ4024] [佛山市选2015] 石子游戏 解题报告
    [JZOJ3383] [NOIP2013模拟] 太鼓达人 解题报告(数位欧拉)
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/7228884.html
Copyright © 2011-2022 走看看