佛山顺德容桂做网站的公司,万维网络(临沂网站建设),济南网络公司排名,滁州新手跨境电商建站哪家好正则表达式#xff08;三#xff09; 括号 分组 量词可以作用字符或者字符组后面作为限定出现次数#xff0c;如果是限制多个字符出现次数或者限制一个表达式出现次数#xff0c;需要使用括号()将多个字符或者表达式括起来#xff0c;这样便称为分组。例如(ab)表示“ab”字…正则表达式三 括号 分组 量词可以作用字符或者字符组后面作为限定出现次数如果是限制多个字符出现次数或者限制一个表达式出现次数需要使用括号()将多个字符或者表达式括起来这样便称为分组。例如(ab)表示“ab”字符串重复出现一次以上ab表示字符b重复出现一次以上。 分组应用匹配一个长度为15到18的数字字符串使用正则表达式\d{15,18}匹配一个长度为15或18的数字字符串使用正则表达式\d{15}(\d{13})?。 多选结构 多选结构的形式是(...|...)在括号内以竖线分隔开多个表达式每个表达式被称为多选分支多选分支的数目是没有限制的。匹配过程中整个多选结构看做一个整体只要其中一个多选分支能够匹配则整个多选结构匹配成功。反之所有多选分支不能匹配则匹配失败。 继分组应用中问题来说匹配一个长度为15或者18的数字字符串使用正则表达式\d{15}(\d{13})?可以实现使用多选结构(\d{15}|\d{18})也可以轻松实现。 多选结构应用匹配月份使用正则表达式(0?[1-9]|1[012])匹配日使用正则表达式(0?[1-9]|1[0-9]|2[0-9]|3[01])。 分组是对字符串特性的抽象合并多选结构是对字符串特性的具象罗列。 引用分组 分组可以保存每个分组的匹配文本匹配完成以后通过group(num)方法引用分组在匹配过程中捕获的匹配文本。其中num表示对应括号的编号括号分组的编号自左向右由1开始计数。一般来说正则表达式匹配完成以后会返回一个结果对象对结果对象调用group()方法并传入所需分组的编号即可获得所需分组的匹配文本内容。如python而言re.search()返回一个MatchObject对象判定MatchObject对象是否为None可以验证匹配是否成功对MatchObject对象调用group()方法可以回去对象中匹配文本的内容。 num 1,2,3,...MatchObject.group(num)表示获取对应括号分组编号匹配的内容。 num 0,MatchObject.group(0)表示获取整个表达式匹配的内容。 反向引用在正则表达式内部引用之前捕获分组匹配的文本形式为\num使用正则表达式([a-z])\1可以表示两个连续重复的字母其中num为1是指分组([a-z])的编号\1表示对其匹配结果的引用。 注意正则表达式(\bcat\b)\s\1\1是对匹配文本cat的反向引用但是\1表示匹配cat不含左右边界的单词也会匹配caterdedicate等单词。 命名分组 分组可以通过括号编号来调用但是括号多了容易混淆因此采用命名分组对不同分组采取不同的命名在调用时也会简单方便。python中命名分组的方式为(?Pname...)例如对分组(\d{4})命名为(?Pyear\d{4})调用时使用group(name)如group(year)获取匹配文本内容。 反向引用使用了命名分组在正则表达式中反向引用时必须使用(?Pname)的记法。 非捕获分组 前面提到了分组的多重用法如普通分组、多选结构、引用分组这些都是需要使用括号构成分组的一旦构成分组就会对分组匹配的文本信息进行保存。有一些匹配文本是我们不需要的我们就可以设置分组为非捕获分组格式为(?...)如(?:\d{4})。在引用分组和非捕获分组交叉出现时非捕获分组不会占用分组编号。 转载于:https://www.cnblogs.com/snow-lanuage/p/10536168.html