电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python正則表達式高級使用方法匯總

瀏覽:34日期:2022-07-20 15:14:09

正則表達式是一個以簡單直觀的方式匹配指定文本信息從而達到查找、替換等操作的目的。正則表達式以其簡單而高效的特點使得其在數據分析和數據驗證方面應用廣泛。

對于簡單的正則表達式可以直接百度之,這里重點引薦下‘特殊’操作。

1.非貪婪模式 - {x,y}?

非貪婪模式是指在使用正則匹配時,盡可能少的匹配(默認是貪婪模式,即:盡可能多的匹配)。例:

>>> re.search(r’[d]{2,5}?’,’091234568’)

<_sre.SRE_Match object; span=(0, 2), match=’09’>

在這里{2,5}?匹配只是匹配2-5個[d]時只要滿足2(最少的)個就好,在看看貪婪模式:

>>> re.search(r’[d]{2,5}’,’091234568’)<_sre.SRE_Match object; span=(0, 5), match=’09123’>

這時候,匹配2-5個[d]時,默認匹配最多的5個。

注意:貪婪和非貪婪模式的區別就是重復操作符后有沒有?字符

2.分組

正則表達式提供了一個機制將表達式分組,匹配的結果也將按照表達式單獨分組。例:

>>> m = re.search(r’(d{3})-(d{5})’,’029-25642’)>>> m.group()’029-25642’>>> m.groups()(’029’, ’25642’)>>> m.group(2)’25642’

可以通過m.groups()看到分組匹配結果,通過m.group(index)查看具體編號的分組結果(編號從1開始,0是完整的匹配)。那分組有什么用呢,好像也沒什么特殊的含義,不急,下面會用到。

3.引用分組(回溯) - N

有這么一種情況,比如假設我要找出一個html文本中的所有<a></a>標簽,怎么辦?試試這樣:

>>> re.search(r’<(w+)>.+</(w+)>’,’<a>this is a demo</e>’)<_sre.SRE_Match object; span=(0, 21), match=’<a>this is a demo</e>’>

奇怪的事情來了,為什么<a></e>被匹配成功了,顯然結果并不是想要的,那怎么才能只匹配<a></a>而過濾掉其他的呢(比如<a></e>)?答案就是引用分組,例:

>>> re.search(r’<(w+)>.+</1>’,’<a>this is a demo</e><p>demo two</p>’)<_sre.SRE_Match object; span=(21, 36), match=’<p>demo two</p>’>

這里1是關鍵,意思就是當前位置匹配的結果需要和第一個分組匹配的結果一致,或者說第一個分組的匹配結果期望在這里再次出現。以此類推。該方法最多只能匹配前99個分組。

4.分組命名 - (?P<name>.*)

分組命名最開始由python引入,比如Django路由中會用到。分組命名的好處是方便,直接使用名字比編號要簡單而且不會變化,例:

>>> m = re.search(r’(?P<first_name>d{3})-(?P<second_name>d{4})’,’029-8967’)>>> m.group(’first_name’)’029’>>> m.groupdict() {’first_name’: ’029’, ’second_name’: ’8967’}

當然,命名分組仍然是編號分組,依然可以使用編號進行查找分組。

5.先行斷言 - X(?!Y)、X(?=Y)

假設有這么一種情況,要查找所有163信箱的文本,也就是@163.com結尾的所有email賬號信息,也就是說不要@163.com這部分,但是其還要參與匹配。這就用到了先行斷言,也即基于之后的內容是否存在接收或拒絕一個匹配,而不需要接下來的內容作為匹配的一部分。例:

>>> re.search(r’h(?!e)’,’hello home!’)<_sre.SRE_Match object; span=(6, 7), match=’h’>

h(?!e)表示匹配h,而且h后面不能是e,此處匹配成功的是home,但是只返回h

>>> re.search(r’h(?=e)’,’hello home!’)<_sre.SRE_Match object; span=(0, 1), match=’h’>

h(?=e)表示匹配he,此處匹配成功的是hello,但是只返回h

6.標記

不區分大小寫:re.IGNORECASE(簡寫re.I)-使得正則表達式不區分大小寫 點匹配換行符:re.DOTALL(簡寫re.S)-使得 . 符號可以匹配換行符 多行模式:re.MULTILINE(簡寫re.M)-使得^$字符可以匹配任意行的開始與結束 詳細模式:re.VERBOSE(簡寫re.X)-使得正則表達式可以換行書寫,且可以加入注釋 調試模式:re.DEBUG-將調試信息輸出到sys.stderr 使用多個標記時,使用|分隔,如re.S|re.M

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 房间温控器|LonWorks|海思| 尊享蟹太太美味,大闸蟹礼卡|礼券|礼盒在线预订-蟹太太官网 | 南京和瑞包装有限公司 | 北京成考网-北京成人高考网 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 进口消泡剂-道康宁消泡剂-陶氏消泡剂-大洋消泡剂 | 屏蔽服(500kv-超高压-特高压-电磁)-徐吉电气 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 釜溪印象网络 - Powered by Discuz! | 无缝钢管-聊城无缝钢管-小口径无缝钢管-大口径无缝钢管 - 聊城宽达钢管有限公司 | 致胜管家软件服务【在线免费体验】 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 柔性测斜仪_滑动测斜仪-广州杰芯科技有限公司 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! |