Python 板


LINE

※ 引述《jijuan ()》之铭言: : 看到一个题目是长度为8的密码, : 必须至少含有一个大写字母、一个小写字母和一个数字, : 找到这个正规表达式, : ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8}$ 我会这样解读 .*\d 代表一个数字前面可以为任意字元 或说任意字元之後一定要出现一个数字 .*[a-z] 代表一个小写字母前面可以为任意字元 或说任意字元之後一定要出现一个小写字母 .*[A-Z] 代表一个大写字母前面可以为任意字元 或说任意字元之後一定要出现一个大写字母 三个条件都用 ?= 包起来,代表这三者要同时成立才是想要的字串 ?=.*\d 找到的是一个数字前方的位置,例如 abc4def c与4之间的那个位置就符合此规则 其余同理 至於加 .* 的理由是 ?=\d 跟 ?=[a-z] 并用会导致不存在符合的情况 我不知道要怎麽解释比较正确,感觉上像是两者找到的位置是不可能同时存在的 而字串 abc4efg 使用 (?=.*\d)[a-z] 筛选,符合的是 a、b、c 三笔资料 字串 abc4efg 使用 (?=.*\d)a 筛选,符合的是 a 字串 abc4efg 使用 (?=.*\d)b 筛选,符合的是 b 字串 abc4efg 使用 (?=.*\d)c 筛选,符合的是 c 字串 abc4efg 使用 (?=.*\d)e 筛选,找不到符合的 字串 4efg 使用 (?=.*\d)e 筛选,找不到符合的 加上 .* 让原本的 \d 规则限制变宽了 : 有几个地方不懂想请问, : (1)?=这部分是Positive lookahead,查了一下它的定义是: : Positive lookahead works just the same. q(?=u) matches a q that is followed : by a u, without making the u part of the match. : 所以第一个括号里,是 .*\d 这一部分被视为u吗?这样的话q是指哪部分呢? : 对第二个括号来说,它前面的(?=.*\d)被视为q吗?还是每个括号都是独立的分组? : 还是说因为lookahead本身不会消耗字元,所以在没有 q的情况下,就把它当作是一个 : 判断句来用这样? : (2).*用来匹配所有东西,那为什麽後面还跟着\d?我现在的理解是,假设"abFj45dE" : 是我要比对的密码,比对到4这个数字时,abFj就是.*的部分吗?也就是说必须符合一 : 串字元之後必须0-9之间的数字这样?还是说(?=.*)本身就是一个特定的写法? : (3)另外根据语言的不同,是不是有些正规表达式中lookbehind只允许等宽长度的字串 : ? -- 「看在上帝的份上,我们不能当着孩子的面枪杀他的父亲!」 「那我们就连孩子一起干掉!」 「第一枪打中的是那个天真的孩子,第二枪是抱着孩子的母亲。第三枪 停顿了三秒,当难以致信的父亲擦拭着脸上爱子的脑浆从震惊中醒转 过来,慢慢的转头看向停车的地方,分辨出是谁在攻击他後,第三颗 子弹才将他的脑壳打飞。」 ─摘自〈狼群〉 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.47.161.122
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1549016440.A.228.html
1F:→ s860134: 加上.*是因为 pattern 第一个字元是 ^ ,没有前导任意长 02/01 22:35
2F:→ s860134: 度万用字元,会变成强制要第一个字元符合三种 assertion 02/01 22:35
3F:→ s860134: 你的 pattern 将不会有任何匹配的可能 02/01 22:36
4F:→ art1: 我给的例子都没加上^ 02/02 04:02
5F:→ art1: regex101.com标示出来的结果显示 ?=.*\d 符合的是一个数字 02/02 04:05
6F:→ art1: 前面的任意位置 02/02 04:06
7F:→ art1: 而不是我说的只有 c 与 4 之间这个位置 02/02 04:07
8F:→ art1: ?=\d 符合的才是 abc4efg 的 c 与 4 之间的单一位置 02/02 04:08
9F:→ s860134: 你知道 search 和 match 的差别吗? 02/02 10:24
10F:→ art1: 有没有消耗字元的区别? 02/02 12:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP