游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

精通正则表达式,看完这篇就行了

  新年快乐,开工大吉
  对于正则表达式,不知道你有没这种感觉,总是能按照需求写出来一些,但是不执行一下总觉得不靠谱。今天我们来简单的看看正则表单时正则表达式
  一般你会用正则做什么,大部分都是做一些字符串的检查?下面有几个问题,不妨试着通过正则表达式看你是否能够解决?校验密码是否包含字母大小写、数字、特殊字符(!)且长度为6到12位将数字12345678用货币格式(每3位一个,)最终效果:12,345,678替换一段文字中的占位字符部分(比如{}包含的内容),类似ES6中的模板语法定义
  正则表达式,又称规则表达式,(RegularExpression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为元字符),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。作用
  回顾下上面的3个问题,我们使用正则基本上也就是完成类似的这些工作,从功能上我们可以划分为:匹配检查目标字符串是否与指定的规则匹配。比如密码强度校验、手机号码校验、URL地址校验等等,一般用来对一段字符串进行格式校验。替换按规则对字符串内容进行替换。比如将一段文字中的特殊字符替换成空字符串,主要实现对文本按指定规则进行内容的替换截取找到字符串中特定规则的片段。可以用来提取目标字符串中满足规则的片段结构
  正则表达式由普通字符以及元字符组成。其中普通字符包含09、az、AZ以及各种符号;元字符则类似?ds这种具有特殊含义的字符。字符普通字符
  非打印字符
  特殊字符
  限定符
  定位符
  规则匹配贪婪匹配、惰性匹配贪婪匹配与惰性匹配影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配(惰性模式:限定符后加上?)源字符串:。。。helloRegex!。。。贪婪模式:。helloRegex!惰性模式:。?helloRegex回溯正则表达式匹配目标字符串时,它从左到右逐个测试表达式的组成部分,看是否能找到匹配项。在遇到量词时,需要决定何时尝试匹配更多字符。在遇到分支时,必须从可选项中选择一个尝试匹配。每当正则做类似的决定时,如果有必要,都会记录其他选择,以便匹配不成功时进行回溯,到最后一个决策点,再重新进行匹配。
  我们可以简单的理解为,当正则匹配存在多种情况时,出现失败后的重试机制,直到所有情况都尝试失败才会最终失败。要注意有时这是非常耗费性能的正则:ab{1,3}c源字符串:abc第一次匹配:a匹配到a第二次匹配:b{1,3}匹配到b第三次匹配:b{1,3}匹配到c,因为贪婪模式,尽可能多的匹配,当匹配到b后,会继续,碰到c,匹配失败,回溯最近一次成功的状态第四次匹配:b{1,3}匹配到b第五次匹配:c匹配到c,批次成功为了减少回溯造成的性能问题,我们应该尽可能地明确需要匹配的目标字符,避免贪婪模式,比如使用b{1,3}?分组、引用和断言分组:语法()按括号从左到右,从外到内依次为分组编号使用(?组名)方式显示分配组名称断言非分组示例:(A)(B(C))则会对应多个分组:0:(A)(B(C))1:(A)2:(B(C))3:(C)引用:语法组号通过组号引用分组,减少重复引用主要是为了减少输入,但要注意正确引用Pattern。compile(()。(1))。matcher(thisiscontent)断言:(?pattern)零宽正向先行断言(前瞻)(?!pattern)零宽负向先行断言(否定前瞻)(?pattern)零宽正向后行断言(正向后视)(?第一个问题的解决方案就用到了断言只判断,不匹配模式
  在javascript中,有i、g、m、s分别对应了不区分大小写、全局匹配、多行匹配以及包含换行符的元字符。匹配,而在Pattern中则提供了下面的几种模式:UNIXLINES换行符统一认定为,(window系统默认是r)CASEINSENSITIVE大小写不敏感,对应iCOMMENTS表达式中的空格及开头的注释内容被忽略MULTILINE多行模式,对应mLITERAL字面值解析模式,元字符作为普通字符处理DOTALL。可以匹配任何字符,包括行结束符,对应上面的sUNICODECASE配合CASEINSENSITIVE实现对UNICODE大小写不敏感CANONEQ启用规范等价,比如a会匹配?UNICODECHARACTERCLASS启用Unicode版本的预定义字符类和POSIX字符类,这样类似w的匹配就不局限于英文字符了元字符
  所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。下面整理了元字符以及其对应的功能。
  示例
  下面来看下上面3个问题通过正则具体如何解决吧。。。问题1,主要使用了断言来实现,当然你也可以拆分成多个正则进行匹配来达到相同的效果TestpublicvoidcheckPassword(){Stringpasswordaaa123Z;PatterncompilePattern。compile((?。d)(?。〔az〕)(?。〔AZ〕)(?。〔!〕)〔azAZd!〕{6,12});log。info({},compile。matcher(password)。matches());}问题2,同样借助了断言,实现字符串的查找,最终实现替换,当然我们替换的不是字符,而是匹配的位置Testpublicvoidscientific(){Stringnumber123456789;Stringresultnumber。replaceAll((?B(d{3})),,);log。info({},result);}问题3,通过分组实现字符串片段的查找,通过变量上下文重新组件字符串TestpublicvoidreplaceHolder(){MapString,StringcontextnewHashMap();context。put(company,north);context。put(project,blob);context。put(model,regex);Stringpackagescom。{company}。{project}。{model}。;PatternpatternPattern。compile(({〔}〕}));Matchermatcherpattern。matcher(packages);StringBufferresultnewStringBuffer();while(matcher。find()){Stringgroupmatcher。group();Stringkeygroup。substring(1,group。length()1);matcher。appendReplacement(result,context。getOrDefault(key,));}matcher。appendTail(result);log。info(result。toString());}工具库
  https:www。runoob。comregexpregexpoperator。html扩展知识
  NFA引擎DFA引擎结束语
  正则表达式是一种书写简单,功能强大且常用的技术,基本所有的编程语言都有其相关的实现与支持。因此深入了解正则实现原理与书写规范非常重要。
  该篇主要通过简单的几个示例介绍了正则表达式的功能以及一些基本结构与功能,希望能够抛砖引玉,让你对正则表达式有更深的认识。来源;https:mp。weixin。qq。comsXuRENQXqh8EXesnDztfi3Q
  作者:指北君

人老两道坎,迈过就长寿家中有老人的,一定要看看这5点!点击右上方红色【关注】,及时获取我们为您推送的健康资讯长寿是我们一直在研究的一个永恒课题。很多人总是从老一辈那里听说,人老了要跨过两道坎:分别指的是七十岁和八十岁两个难坎……苹果宣布自研MacARM芯片,能否引领PC走进新时代在刚刚结束的苹果WWDC2020上,作为压轴大戏,苹果放出大招公布了自研芯片的计划,苹果公司宣布Mac电脑将转向公司自主定制的处理器,这意味着苹果与英特尔之间亲密的友好合作关系……核显性能超MX350,超频版AMDR7Pro4750G现身IT之家6月16日消息根据知名爆料者rogame的消息,AMDRyzenPro4750G已经出现在了3DMark数据库中,OC超频模式下核显频率达到了2400MHz,跑分领先M……入门级CPU进入4核时代,AMD速龙金牌Pro3150G曝光IT之家6月16日消息根据爆料者APISAK提供的线索,AMD即将推出速龙3000G的继任款速龙金牌Pro3150G,核心数量翻倍。IT之家了解到,AMD速龙GoldPr……亚马逊曝光AMD锐龙3000XT系列处理器售价,约2269元IT之家6月13日消息此前就有消息称AMD将推出处理器新品AMD锐龙3000XT系列,今天,意大利的亚马逊商城上架了Ryzen93900XT和Ryzen53600XT两款商品,……英伟达GeForceRTX3080散热器再曝光土豪新宠,成本IT之家6月11日消息据外媒videocardz消息,有国内网友日前在reddit放出了疑似英伟达即将推出的RTX3080公版散热器的拆解图。Videocardz称,这次……AMDR54400G现身6核APU,核显频率达1。9GHzIT之家6月11日消息日前,商用的R5Pro4400G已经曝光,现在消费级的R54400G出现在了跑分平台上,两者参数一致,都是搭载了6核CPU和1。9GHz的GPU。如……英特尔公布大小核CPU详细参数i5L16G7最高支持8GB内IT之家6月11日消息昨天,老牌外媒AnandTech率先报道了英特尔Lakefield系列处理器的规格信息,i5L16G7为处理器5核5线程,7WTDP。现在,英特尔官网公布……英特尔发布LakeField处理器5核5线程,7WTDPIT之家6月10日消息根据外媒AnandTech的报道,英特尔今天公布了Lakefield系列处理器的两款型号,采用了大小核设计,5核5线程,7WTDP。英特尔公布了i5……迎接锐龙4000G系列桌面APU,AMD全新BIOS准备就绪感谢IT之家网友夜LOVE雨的线索投递!IT之家6月10日消息根据外媒VideoCardz的消息,爆料者Komachi在最新的华硕CrosshairVIIIImpact主……首发R94900H,华硕新款天选游戏本明日零点开启预售IT之家6月3日消息华硕天选游戏本将首发AMD锐龙R94900H处理器,同时配备高刷新率和高色域屏,6月4日0点开启预售,到手价7999元。华硕表示,天选游戏本将首发锐龙……ROGSTRIX纯白电源上架850W金牌认证,1199元IT之家6月2日消息4月份,华硕推出了ROGStrix850W电源,采用了白色的整体设计,图案为银色。现在,ROGSTRIX雪鹰850W已经上架京东,售价为1199元。I……
美国人的傻,精明的中国人能学习一下吗?先介绍一下背景情况,我老公是硅谷的码农,我们俩都是上海人。因为疫情的关系,我们异地了3年。疫情期间,我老公给我买了一家叫做MEJURI的金饰。这家珠宝画风如下:……神舟将推轻薄设计本战神S9,外观公布IT之家2月4日消息根据神舟官方的消息,轻薄设计本战神S9即将上市,新机的外观现已公布。如上图所示,新款战神S9采用了三边窄边框的屏幕设计,机身相较于其他常规的游戏本更为……那些爬风机的时光我有时候会想起去风场爬风机的日子。慢慢发现去风电有个好处:能让人安静下来,去思考一些不一样的东西,比如人生,比如这个五光十色却也光怪陆离的世界。当然不是说你去风场可……IT之家评测室七彩虹iGameGeForceRTX3060A英伟达GeForceRTX3060显卡正式上市了,作为GA106核心超大杯产品,不少AIC厂商也在第一时间跟进GeForceRTX3060产品,七彩虹旗下的iGame品牌就推出……七彩虹RTX3060AdvancedOC上架三风扇散热,36IT之家2月25日消息今晚,七彩虹上架了iGameGeForceRTX3060AdvancedOC12G显卡,2月26号1:00正式开售,售价3699元。IT之家了解到,……七彩虹即将推出国风游戏本主打性价比,外观剑走偏锋IT之家2月22日消息近日,七彩虹官方社交账号曝出一组漫画,正式官宣即将发布游戏笔记本。漫画内容主要讲述的是话剧社团的学生演出《封神》,将现实与虚拟结合,重塑经典神话雷震子的人……一战看透,就冲这个原因,他是国内顶级的后卫无疑CBA202122赛季季后赛半决赛已经打响,广东队在首场比赛中,7992惨败辽宁,大比分01落后。伤病累累的广东队面对人员齐整的辽宁队确实是很难取胜,不过在这一场比赛中,广东队……这个冬天特别冷,我的父亲走了,是我心中永远的痛随着我的成长,父亲已逐渐老去,就在今年冬天,真正的离开了我。我无时无刻不在怀念有父亲关爱的日子,也许因为父亲在世的时候,我没有好好尽过孝道,父亲的离去给我留下了刻骨铭心的痛,让……雷神911MT黑武士开卖6核i5RTX3060,6799元IT之家2月2日消息今晚,雷神911MT黑武士游戏本正式开卖:i510500HRTX3060,首发价6799元。IT之家了解到,雷神911MT黑武士游戏本搭载了6核12线……英特尔670pSSD上架144层QLC,1TB799元IT之家3月1日消息去年12月,在2020英特尔内存存储日活动上,英特尔正式发布了固态盘670p,采用了英特尔新一代144层QLC3DNAND。现在,英特尔670pSSD已经上……微软将为SurfacePro7推出SSD升级套件IT之家2月26日消息今年1月份,微软发布了SurfacePro7,外观几乎没有变化,更新了11代酷睿,SSD可更换,售价6588元起。今天,外媒NoteBookChec……大衣哥的儿媳陈亚楠最近口碑很不好,到底为什么呢?大衣哥儿媳亚楠在直播间说自己嫁进朱家之后没有花朱之文一分钱,全部是她直播卖货赚来的,因为小伟在直播间太不会配合,像个提线木偶一样,遭到亚楠嫌弃,亚楠宣布小两口暂时分开,小伟回到……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网