应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

Python正则表达式(一)

  正则表达式(regularexpression)在编程中占有重要地位,它能够按照指定的方式匹配具有某种结构的字符串。本文将对此技术给予详述。Python中的正则表达式
  假设有一个字符串s,在程序中,需要检查123是否为这个字符串的一部分,这种需求可以用下面的代码实现。sfoo123bar123insTrue
  如果你不仅想知道123是否在字符串s中,还想知道它在字符串的什么位置,可以使用字符串的。find()或者。index()方法,返回123在s中的索引。sfoo123bars。find(123)3s。index(123)3
  在上面的例子中,是按照字符一一对应的方式匹配的,这种方式会适用于很多地方,但是,有时候也会有更复杂的问题。比如,判断字符串中是否有像123这样有数字组成的字符串,例如foo123bar、foo456bar、234baz、和qux678,再用上面的方法,就会太麻烦了,这就要正则表达式出场了。正则表达式极简史
  1951年,数学家斯StephenColeKleene提出了正则表达式,20世纪60年代中期,计算机科学先驱KenThompsonUnix的原始设计师之一,他使用Kleene创造的符号在QED文本编辑器中实现了模式匹配。
  自那时以来,正则表达式就出现在了许多编程语言、编辑器和其他工具中,作为确定字符串是否与指定模式匹配的方法,Python、Java和Perl等都支持正则表达式,大多数Unix工具和许多文本编辑器都支持正则表达式。re模块
  Python中的正则表达式用re模块实现,它包括很多实用的方法,接下来,会介绍其中的大部分。
  现在,先来研究re。search()。re。search(regex,string)Scansastringforaregexmatch。
  re。search(,)按照参数所设置的正则表达式,扫描参数的字符串,这个过程可以称为匹配,如果有符合正则表达式结构的子字符串,即匹配存在,就会返回第一个所匹配的对象,否则返回None。
  后面还会介绍,re。search()中的第三个参数。怎么使用re。search()
  基本使用方法如下:importrere。search(。。。)熟悉模块使用方法的,可能会知道,还能这样做:fromreimportsearchsearch(。。。)示例
  下面的示例,演示re。search()的基本应用:sfoo123barimportrere。search(123,s)sre。SREMatchobject;span(3,6),match123
  在上面示例中,就是123,是字符串s,最后返回了匹配结果,有此结果,我们至少知道字符串s中含有123。
  如果写一个比较完整的程序,可以用条件语句判断一下:ifre。search(123,s):。。。print(Foundamatch。)。。。else:。。。print(Nomatch。)。。。Foundamatch。
  前面代码中返回结果sre。SREMatchobject;span(3,6),match123,其中的span(3,6)意思是字符串中匹配出现的位置,与切片的含义一样。s〔3:6〕123
  不过,上面的例子显然没有体现正则表达式的优势,只说明了它的基本操作流程。正则表达式中的元字符
  在正则表达式中,有一些特定字符,它们被称为元字符,每个元字符,代表了正则表达式中的某个特殊含义,能够满足正则匹配搜索引擎的查询之需。
  例如,一组方括号(〔〕)表示了一个元字符类,即匹配字符类中的任何一个字符:sfoo123barre。search(〔09〕〔09〕〔09〕,s)sre。SREMatchobject;span(3,6),match123
  〔09〕表示要匹配0到9的任何一个数字字符,〔09〕〔09〕〔09〕则表示匹配连续三个0到9之间的任何数字字符,在字符串s中,符合要求的就是123。re。search(〔09〕〔09〕〔09〕,foo456bar)sre。SREMatchobject;span(3,6),match456re。search(〔09〕〔09〕〔09〕,234baz)sre。SREMatchobject;span(0,3),match234re。search(〔09〕〔09〕〔09〕,qux678)sre。SREMatchobject;span(3,6),match678
  如果没有连续的三个数字字符,就不会匹配。print(re。search(〔09〕〔09〕〔09〕,12foo34))None
  另外一个元字符的例子是句点(。),它表示任何一种类型的字符(除了换行符):sfoo123barre。search(1。3,s)sre。SREMatchobject;span(3,6),match123sfoo13barprint(re。search(1。3,s))None
  在第一个例子中,1和3是明显有匹配的,。匹配了2。但是,第二个示例则没有匹配。re模块的元字符
  下表中列出的,是re模块支持的元字符。
  下面以示例说明部分元字符的应用。字符类符号:〔〕
  〔〕里面表示的字符类,即要匹配的一个字符集合。re。search(ba〔artz〕,foobarqux)sre。SREMatchobject;span(3,6),matchbarre。search(ba〔artz〕,foobazqux)sre。SREMatchobject;span(3,6),matchbaz
  〔artz〕表示4个独立的字符,在上面的示例中,正则表达式ba〔artz〕匹配了字符串中的bar和baz,当然,如果有可能,还可以匹配baa、bat。
  字符集中,可以用表示字符序列的范围,例如〔az〕表示匹配英文小写字母a到z中的任何一个字母。re。search(〔az〕,FOObar)sre。SREMatchobject;span(3,4),matchb
  〔09〕表示任何一个数字字符:re。search(〔09〕〔09〕,foo123bar)sre。SREMatchobject;span(3,5),match12
  在这个示例中,〔09〕〔09〕表示匹配两个数字组成的字符串,对于字符串foo123bar,匹配了第一次出现的符合正则表达式的部分。
  〔09afAF〕表示16进制的任何一个字符。re。search(〔09afAf〕,a0)sre。SREMatchobject;span(4,5),matcha
  这里匹配了第一个出现的16进制的字符a。
  也可以在字符类中以作为第一个字符,则表示要匹配该字符类的补集,即所有不是字符集中的字符。如下所示,〔09〕表示非数字字符。re。search(〔09〕,12345foo)sre。SREMatchobject;span(5,6),matchf
  这里匹配的结果是第一个非数字的字母字符f。如果不在首位,就没有了上面那种特殊含义了,仅仅是一个普通的符号。re。search(〔:〕,foobar:bazqux)sre。SREMatchobject;span(3,4),match
  前面已经说过,表示了字符范围,但是,如果希望在正则表达式中匹配一个连字符,怎么办?如果在首位或者末尾,就表示连字符本身,如果在中间,可以只用转义符。re。search(〔abc〕,123456)sre。SREMatchobject;span(3,4),matchre。search(〔abc〕,123456)sre。SREMatchobject;span(3,4),matchre。search(〔abc〕,123456)sre。SREMatchobject;span(3,4),match
  同样,对于〕符号,也可以用类似方法处理。re。search(〔〕〕,foo〔1〕)sre。SREMatchobject;span(5,6),match〕re。search(〔ab〕cd〕,foo〔1〕)sre。SREMatchobject;span(5,6),match〕
  在〔〕所设定的字符集中,其他各种元字符都失掉了作为元字符的含义。re。search(〔)〕,123456)sre。SREMatchobject;span(3,4),matchre。search(〔)〕,123456)sre。SREMatchobject;span(3,4),match
  这些元字符都编程了普通的字符。

30!中国女足再胜一场,三连胜晋级,张琳艳王霜评选最佳受影响亚洲杯女足的比赛正如火如荼地进行着,球迷们都关注着各支球队的输赢胜负,其实,亚洲杯这样级别的比赛,除了冠亚军的争夺外,那些个人的最佳奖项也是竞争十分激烈的,比如最佳主教练、最佳……传奇世界麻痹戒指护体戒指都知道,剩下的7种老玩家也说不全传奇世界这一款经典游戏自零三年发布以后,就吸引住了一大批游戏玩家,最初的时候它传承了许多热血传奇的元素,被很多人说是抄袭。但是在那个互联网游戏匮乏的时代,能顶着压力做出一款自己……木心美术馆的转译语言项目选址项目选址定在了木心先生的故乡,乌镇风景区内,湖岸蜿蜒曲折,湖面有小岛连成的丝丝缕缕的小路。东面是刚落成的乌镇大剧院,四周是乌镇的传统民居,背景是绵延数里的老街与纵……战舰世界新航母已经入手了?千万小心他最近几天,《战舰世界》全球同步开启,相信很多玩家入手了新上线的S系航母。航母算是现在游戏中最强悍的战舰了,不管是遇见战列舰驱逐舰还是巡洋舰,只要对方敢大意轻敌,就有可能刹那间樯……丹巴奇特碉楼群,雕塑还分男女,壮观还抗震,有近两千年历史丹巴奇特碉楼群,雕塑还分男女,壮观还抗震,有近两千年历史我们都知道性别这个区分的最大范围,应该是属于有生命体的动植物身上,一般来说,像一些无生命的建筑物等,是没有办法区分……老年人易出现膝关节退变,远离疼痛与畸形,该如何正确用药?人老后,多少都会面临一些骨骼性疾病,骨质疏松是常见问题,除此之外,还有一个问题也容易找上老人,就是膝关节退变,常常让老人很痛苦。对老人的生活,已经产生很大影响,老人的心理也产生……晚报小米12真机亮相乐视宣布不会裁员,全员还涨薪嗨!尾巴们,晚上好今天是12月22日重磅新闻雷军:小米12拍照速度可能是第一名!相机非常强小米米12将搭载全新的影像架构,具有相机上的新突破:快,更稳。……曝小贝长子秘密完婚!百亿儿媳娶进家门,46岁贝克汉姆当喜公公近段时间,世界足坛接连传出感染病毒的消息,不过对于昔日的超级巨星贝克汉姆来说,生活没有受到任何打扰,而且显得十分惬意。贝克汉姆晒出了全家人出游的照片,可以看到他们乘坐一艘豪华邮……曝前辽篮外援巴斯重返CBA,3队抛出橄榄枝,2支南方队,1支北京时间6月13日,我们继续分享CBA的消息。目前各支球队已经集结开始备战新赛季,截止目前有两大特点,各俱乐部教练更换频繁,据悉目前已经有雅尼斯等8名教练离开原教练岗位,其二是……碗有三不端,门有三不进,人有三不交老祖宗的俗语,给我们留下了无穷的智慧。若你能真正读懂,一定能少走不少的弯路。祖辈们告诉我们碗有三不端,就是说我们在社会上立足,谋生存和发展,最好是尽量避免下面这三种情况。……今日新游Steam上架游戏推荐(1月11日)索引:江湖十一末日绿钞(GROSS)KittenHeroWilderless幻想三国志天元异事录Kandria跑跑卡丁车:漂移(Kar……今日欧美明星时尚街拍图集(2023年1月7日)今日欧美明星时尚街拍图集(2023年1月7)时尚欧美明星的街拍就是行走在马路上的秀场,明星们的街拍就是时尚界的潮流风向标。明星们身穿什么牌子的衣服、肩背什么大牌包包,脚蹬……
跟着唐诗宋词去旅游丨赤壁编者按媒体作为传递主流价值的信使,担负着承载文化、引领价值、成风化人的使命。我们希望找到符合当代审美、以年轻人喜闻乐见的方式推动古与今的对话,更好地传承中华优秀传统文化。……勇士客场11连败,水花兄弟状态低迷,客场魔咒真的难以打破?在今天上午结束的NBA比赛中,勇士队119:133客场不敌灰熊,客场11连败继续刷新队史纪录,勇士队客场难求一胜,这一客场魔咒不知何时才能打破。比赛中,水花兄弟状态都异常低迷,……本田再发力,何日才能两面生花?从电动化春风吹来至今,新能源汽车逐渐步入主流,汽车市场已然发生了巨大的变化。虽然近几年受到疫情、芯片短缺、原材料上涨等因素的影响,汽车增速有所放缓,但是整体来说依旧欣欣向荣。……姚晨亮相微博之夜黑纱鱼尾裙展露低调大气女王范儿今日,演员姚晨出席2022微博之夜,一袭黑纱深v鱼尾裙将她大方沉稳的气质很好的衬托开来,黑发红唇的利落标配也让大姚整个人都气场全开。没有过多繁杂的设计和点缀,简约大气的黑……自制肉夹馍,吃一个管饱超级过瘾,学会不用买了说到肉夹馍,这可是一道历史悠久,又人见人爱的传统美味。虽说有点类似肉饼的质感,但不论从颜值还是口感来说都远非其他肉类美食可比。但它保持了很多面点的传统口感,吃起来更加细腻,更有……1。4万亿元!烟民都是大善人本次重大会议上公布了2023年全国一般公共预算中,用于国防支出的1。58万亿元,比上年执行数增长7。2。无论是绝对金额,还是同比增幅,国防支出预算,都创下了近些年来我国的……大散文月满西楼(三)大散文月满西楼(三)作者崔洪国江流宛转绕芳甸,月照华林皆似霰,相伴着你的那轮明月会变魔术,闭眼睁眼,故乡山川、河流湖波、曲径通幽转眼之间就变出来了。你不曾见过的山川……大宝患罕见病,高龄二胎备孕,我是不是疯了?我和我老公在帝都工作,都是普通的工薪族,我们苦中作乐,对未来充满了希望和憧憬。万万没想到,2016年我们幸福的小家庭突遭变故,年仅5岁的孩子查出罕见病,动了一次大手术,好……外媒印俄石油交易削弱美元主导地位来源:海外网印度石油和天然气部长哈迪普辛格普里(美国消费者新闻与商业频道)海外网月日电据路透社月日报道,以美国为首的国家对俄罗斯的制裁已经开始削弱美元在国际石油贸易……这条风貌保护道路,兼具时尚潮流与烟火气摘要:历史与未来叠合、怀旧与时尚碰撞、日常与艺术融合,这种一反生活在别处的生活场景,让武夷路突然成为一种生活向往。武夷路东起延安西路,经安西路、定西路、凯旋路、沪杭铁路、……艾尔登法环网测体验充满魂味的开放世界,期待正式版的推出欢迎关注,获取更多游戏评测资讯,入手与否不再犹豫。()似魂非魂由FromSoftware开发的动作RPG游戏《艾尔登法环》,从初次曝出到后续放出的视频预告,可谓钓了不少粉……王权没有永恒?动视暴雪的帝国坟场如果用两个字来形容现在的暴雪玩家,那就是难民。每一位暴黑曾经都是将暴雪捧上天的暴粉。曾经的暴雪,一把闭着眼打都能赢的天牌起手,单机有《暗黑》系列、《魔兽》系列、《星……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网