首页 » python » 正文

Python Challenge Level 3 re.findall

好吧,这题真服了,还是在源代码中,还是re.findall

注意这句话:
One small letter, surrounded by EXACTLY three big bodyguards on each of its sides

一个小写字母,前后各是3个大写字母,既然前后各是3个大写字母,那么,前后要各加一个 [^A-Z],保证这个是非大写字母

re.findall(“[^A-Z]+[A-Z]{3}([a-z])[A-Z]{3}[^A-Z]+”)

注意,此处([a-z]),括号必须有

re.findall(“[^A-Z]+[A-Z]{3}[a-z][A-Z]{3}[^A-Z]+”)

因为如果不加(),我们得到的结果可能

dqIQNlQSLidbzeOEKiVEYjxwaZADnMCZqewaebZUTkLYNgouCNDeHSBjgsgnkOIXdKBFhdXJVlGZVme
gZAGiLQZxjvCJAsACFlgfe
qKWGtIDCjn

即正则将所有匹配的字母哪出来了,不是我们想要的小写字母

这个地方需要注意的一点是”+”的含义是:重复1次或者更多次,不同的是”*”:重复0次或者更多次

发表评论