zoukankan      html  css  js  c++  java
  • Python的学习之旅———re 模块正则表达式

    #重复匹配:. [] ? * + {}

    ?:左边那个字符出现0次或1次

    print(re.findall('ab?','a ab abb abbb abbbbbb'))
    print(re.findall('ab{0,1}','a ab abb abbb abbbbbb'))

    *:左边那个字符出现0次或无穷次

    print(re.findall('ab*','a ab abb abbb abbbbbb abbc123bbbb'))
    print(re.findall('ab{0,}','a ab abb abbb abbbbbb abbc123bbbb'))

    +:左边那个字符出现1次或无穷次

    re.findall('ab+','a ab abb abbb abbbbbb abbc123bbbb')
    re.findall('ab{1,}','a ab abb abbb abbbbbb abbc123bbbb')

    贪婪匹配:.*
    print(re.findall('a.*b','a123b456b'))

    非贪婪匹配:.*?
    print(re.findall('a.*?b','a123b456b'))

    分组:()

    print(re.findall('<imag href="(.*)" />',
    '<h1>hello</h1><a href="http://www.baidu.com"></a><imag href="http://www.baidu.com/a.jpg" />'))

    只留下组内的内容

    print(re.findall('<imag href="(?:.*)" />',
    '<h1>hello</h1><a href="http://www.baidu.com"></a><imag href="http://www.baidu.com/a.jpg" />'))
    | 管道符
    print(re.findall('compan(?:ies|y)','Too many companies have gone bankrupt, and the next one is my company'))

    注意:

    在python中使用正则表达式,会先被python式识别一次。(也就是会先消耗一次)

    print(re.findall('a\\c','ac a12 a2c')) #'a\c'   所以要想多写两个
    print(re.findall(r'a\c','ac a12 a2c')) #'a\c'

     1 #为何同样的表达式search与findall却有不同结果:
     2 print(re.search('(([+-*/]*d+.?d*)+)',"1-12*(60+(-40.35/5)-(-4*3))").group()) #(-40.35/5)
     3 print(re.findall('(([+-*/]*d+.?d*)+)',"1-12*(60+(-40.35/5)-(-4*3))")) #['/5', '*3']
     4 
     5 #看这个例子:(d)+相当于(d)(d)(d)(d)...,是一系列分组
     6 print(re.search('(d)+','123').group()) #group的作用是将所有组拼接到一起显示出来
     7 print(re.findall('(d)+','123')) #findall结果是组内的结果,且是最后一个组的结果
     8  对于这种情况 取了3次值 
     9 分别是  ‘1’   ‘ 2’    ‘310 最后就显示了 3 这个数字 





  • 相关阅读:
    递增一个指针
    ubuntu 系统 sudo apt-get update遇到问题sub-process returned an error code
    熟悉HDFS过程中遇到的问题
    大二暑假第八周进度报告
    大二暑假第七周进度报告
    oracle“ORA-00904”错误:标识符无效
    大学暑假第六周进度报告
    大二暑假第五周进度报告
    使用Navicat for Oracle新建表空间、用户及权限赋予
    大学暑假第四周进度报告
  • 原文地址:https://www.cnblogs.com/surehunter/p/7735595.html
Copyright © 2011-2022 走看看