zoukankan      html  css  js  c++  java
  • re模块与正则表达式进阶

    在python中使用正则表达式:

     转义符:
     re模块:

    import  re

    1.findall  :返回所有满足匹配条件的结果,放在列表里,如果没救就返回空列表,在分组中会优先显示分组中的内容,想要取消优先分组可以(?:正则表达式)

    ret = re.findall("d","axd4515d4f")

    print(ret)

    2.search  :找到第一个符合要求的字符串,然后返回一个包含匹配信息的对象,可以通过goup()方法得到匹配的字符串,如果没有就返回None.  re.match()和search一样,只是在第一位没找到时就会报错

    如果search中有分组的话,通过group(n)就能拿到group中的匹配内容

    ret = re.search("a","eva egon yuan")

    print(ret.group())#结果"a"

    3.split  :对字符串进行分割,遇到分组会将分组内被切掉的内容保留.

    ret = re.split("[ab]","abcd")#先以"a"分割得到" "和"bcd",然后以b分割得到[" "," ","cd"]

    4.sub  :替换,相当于replace.

    ret = re.sub("d","H","eva3erdgs4yuan4",1)#表示将数字换成H,后面的参数表示只替换一次.
    5.subn  :返回的是元组(替换的结果,替换的次数)

    6.compile  :将正则表达式编译成一个正则表达式对象,方便后面程序调用.

    rs = re.compile("正则表达式")

    ret = rs.findall("字符串")

    7.finditer  :返回一个存放匹配结果的迭代器.

    ret = re.finditer("d","ds3sy4784a")

    for i in ret:

      print(i.goup())

    匹配标签:

     1 import re
     2 
     3 
     4 ret = re.search("<(?P<tag_name>w+)>w+</(?P=tag_name)>","<h1>hello</h1>")
     5 #还可以在分组中利用?<name>的形式给分组起名字
     6 #获取的匹配结果可以直接用group('名字')拿到对应的值
     7 print(ret.group('tag_name'))  #结果 :h1
     8 print(ret.group())  #结果 :<h1>hello</h1>
     9 
    10 ret = re.search(r"<(w+)>w+</1>","<h1>hello</h1>")
    11 #如果不给组起名字,也可以用序号来找到对应的组,表示要找的内容和前面的组内容一致
    12 #获取的匹配结果可以直接用group(序号)拿到对应的值
    13 print(ret.group(1))
    14 print(ret.group())  #结果 :<h1>hello</h1>

    数字匹配:

    1、 匹配一段文本中的每行的邮箱
           http://blog.csdn.net/make164492212/article/details/51656638
     
    2、 匹配一段文本中的每行的时间字符串,比如:‘1990-07-12’;
     
        分别取出1年的12个月(^(0?[1-9]|1[0-2])$)、
        一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$
     
    3、 匹配qq号。(腾讯QQ号从10000开始)  [1,9][0,9]{4,}
    
    4、 匹配一个浮点数。       ^(-?d+)(.d+)?$   或者  -?d+.?d*
    
    5、 匹配汉字。             ^[u4e00-u9fa5]{0,}$ 
     
    6、 匹配出所有整数
  • 相关阅读:
    每日一问6:short、int、long以及long long的区别
    每日一问5 什么是类型安全?
    每日一问4: ++i和i++的区别
    每日一问3: C++中extern关键字的作用
    C++中如何判断int型是否溢出
    C++中的POD型别
    Java多线程之一:进程与线程
    设计模式2-单例模式
    Maven学习-编译遇到‘src/checkstyle/checkstyle-suppressions.xml‘
    任意用户登录系统时,显示警示提醒信息 “hi dangerous!”
  • 原文地址:https://www.cnblogs.com/smile568968/p/9437504.html
Copyright © 2011-2022 走看看