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

环顾和非捕获组之间的功能差异?

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

环顾和非捕获组之间的功能差异?

根本的区别在于以下事实:非捕获组仍会消耗它们匹配的字符串部分,从而使光标向前移动。

一个与之根本不同的示例是,当您尝试匹配某些字符串时,这些字符串被某些边界包围并且这些边界可以重叠。示例任务:

匹配

a
给定字符串中被
b
s包围的所有s-给定的字符串为
bababaca
。应该在位置2和4进行两次比赛。

使用环视很容易,您可以使用

b(a)(?=b)
(?<=b)a(?=b)
进行匹配。但
(?:b)a(?:b)
不会起作用-
第一场比赛还将消耗位置3处的b,这是第二场比赛的边界。(注意:这里实际上不需要非捕获组)

另一个比较突出的示例是密码验证-检查密码中是否包含大写,小写字母,数字等内容-您可以使用一堆替代字词来匹配这些字符-但提前查找会更容易:

(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!?.])

(?:.*[a-z].*[A-Z].*[0-9].*[!?.])|(?:.*[A-Z][a-z].*[0-9].*[!?.])|(?:.*[0-9].*[a-z].*[A-Z].*[!?.])|(?:.*[!?.].*[a-z].*[A-Z].*[0-9])|(?:.*[A-Z][a-z].*[!?.].*[0-9])|...


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

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

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