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

     
    万能匹配:

    贪婪匹配————>.*

    非贪婪匹配————>.*?

    拼接字符串:

    str1 = 'hello'
    str2 = 'world'
    num = 123123
    print(str1 + str2 + str(num))
    helloworld123123

    编码解码:

    encode('utf-8')     #编码
    decode('utf-8')     #解码

    取数字:

    idcard = '152601199506293125'
    year = idcard[6:10] + ''  #取第6个到第10个(取头去尾)不要第10个。
    month = idcard[10:12] + ''
    day = idcard[12:14] + ''
    print('生日: ' + year + month + day)
    生日: 1995年06月29日

    把字符串分割后组成列表的形式

    str = '你是谁,你在哪'
    print(str.split(','))
    ['你是谁', '你在哪', '你要干什么']

    使用re模块实现正则表达式

    代码说明
    . 匹配除换行符外的任意字符
    w 匹配字母,数字,下划线,汉字
    s 匹配单个空白符,包括tab和换行
    W 匹配非w以外的内容
    S 除单个字符
     匹配单词的开始和结束
    d 匹配数字

    替换危险字符:

    import re
    str = r'(石头)|(天气)|(你好)'
    str1  = '今天天气很好,看到路上有石头,碰到熟人说你好'
    qwe = re.sub(str,'@@@@@',str1)
    print(qwe)
    今天@@@@@很好,看到路上有@@@@@,碰到熟人说@@@@@

    贪婪匹配,非贪婪匹配

    import re
    info = 'qwffq213123feqfeqwf2132fd1f12rf1f21f'
    str1 = re.compile('fq(.*)fe').search(info).group(1)     #gourp(1)代表匹配第一个括号里的内容
    print(str1)
    str2 = re.compile('fq(.*?)fe.*?1f(.*?)rf').search(info).group(1)    #gourp(1)代表匹配第一个括号里的内容
    print(str2)
    str3 = re.compile('fq(.*?)fe.*?1f(.*?)rf').search(info).group(2)    #gourp(2)代表匹配第二个括号里的内容
    print(str3)
    str4 = re.compile('fq(.*?)fe.*?1f(.*?)rf').findall(info)    #匹配整个字符串所有符合正则表达式的字符串,并以列表的形式返回
    print(str4)
    str5 = str4[0]
    res = ''.join(str5)     #把元组拼接成字符串
    print(res)
    str6 = re.compile('(d+)').findall(info)#findall匹配所有
    result = ''.join(str6)#把列表拼接成字符串
    print(result)
    res = re.compile('qwffq(.*?)fe').findall(info)
    print(res)
    213123feq
    213123
    12
    [('213123', '12')]
    21312312
    2131232132112121
    ['213123']
  • 相关阅读:
    基础DP背包
    哲学思絮01
    Vue使用ElementUI
    Vue-Mock数据
    Vue生命周期
    Vue实战之CURD
    读《间客》有感
    ASP.Net Core网站发布
    Cycling之 标签化
    Vue环境搭建
  • 原文地址:https://www.cnblogs.com/dayle/p/10034860.html
Copyright © 2011-2022 走看看