栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

重复多个字符正则表达式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

重复多个字符正则表达式

将要重复的正则表达式放在括号中。例如,如果您要重复5次

ABC

(ABC){5}

或者,如果您想要任意数量的重复(0或更多):

(ABC)*

或一个或多个重复:

(ABC)+

编辑 以回应更新

正则表达式中的括号有两个作用:它们将正则表达式中的一系列项目组合在一起,以便您可以将运算符应用于整个序列而不是最后一个项目,并且它们会捕获该组的内容,因此您可以提取与该子表达式匹配的子字符串在正则表达式中。

您可以嵌套括号;从第一个开始的paren开始计算。例如:

>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(0)'123 ABCDEF'>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(1)'ABCDEF'>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(2)'DEF'

如果您希望避免在分组时进行捕获,可以使用

(?:
。如果您不希望仅使用括号将序列分组在一起,以应用运算符来更改匹配项的编号,这将很有帮助。它也更快。

>>> re.search('[0-9]* (?:ABC(...))', '123 ABCDEF 456').group(1)'DEF'

因此,要回答您的更新,是的,您可以使用嵌套捕获组,甚至完全避免使用内部组进行捕获:

>>> re.search('((?:ABC){5})(DEF)', 'ABCABCABCABCABCDEF').group(1)'ABCABCABCABCABC'>>> re.search('((?:ABC){5})(DEF)', 'ABCABCABCABCABCDEF').group(2)'DEF'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号