返回信息流import re
s = "www.jaeapedu.comwww.JeapedU.comwww.jEAPEDU.comwww.heapedu.comwww.HeapedU.com"
res = '(j|J)|(u|U)|(c)'
print (re.findall(res,s))
输出:
[('j', '', ''), ('', 'u', ''), ('', '', 'c'), ('J', '', ''), ('', 'U', ''), ('', '', 'c'), ('j', '', ''), ('', 'U', ''), ('', '', 'c'), ('', 'u', ''), ('', '', 'c'), ('', 'U', ''), ('', '', 'c')]
res = '(j|J)\w*(u|U)'
print (re.findall(res,s))
输出:
[('j', 'u'), ('J', 'U'), ('j', 'U')]
res = '[jJ]\w*(u|U)'
print (re.findall(res,s))
输出:
['u', 'U', 'U']
res = '[jJ]\w*[uU]'
print (re.findall(res,s))
输出:
['jaeapedu', 'JeapedU', 'jEAPEDU']
除了最后一个输出都不明白,小括号会转化为数组?那么小括号之间用“|”连接也会转化为数组?
还有第三个,为什么中括号里面没有匹配上呢?
小白求大神解答~~
这是一条镜像帖。来源:北邮人论坛 / python / #20389同步于 2018/1/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
正则表达式很困惑的问题
mhxzkhl
2018/1/5镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
谢大神,不理解[uU]和(u|U)的区别,所以我觉得第三个和第四个应该是一样的
【 在 specops 的大作中提到: 】
: 小括号是正则表达式的group
: 没看懂你对第三个哪里不懂
不用谢
如果有group,findall只返回了匹配到的group 其他的省略了
事实上你第三个和第四个匹配到的东西是一样的 只是显示的方式不同
【 在 mhxzkhl (HHL123) 的大作中提到: 】
: 谢大神,不理解[uU]和(u|U)的区别,所以我觉得第三个和第四个应该是一样的
那为什么显示的方式会不一样呢?
【 在 specops 的大作中提到: 】
: 不用谢
: 如果有group,findall只返回了匹配到的group 其他的省略了
: 事实上你第三个和第四个匹配到的东西是一样的 只是显示的方式不同
如果正则表达式里有group findall会返回group 如果没有 就返回匹配到的文本
【 在 mhxzkhl (HHL123) 的大作中提到: 】
: 那为什么显示的方式会不一样呢?
好的,3q~~
【 在 specops 的大作中提到: 】
: 如果正则表达式里有group findall会返回group 如果没有 就返回匹配到的文本