python3 或的问题

tigs=re.findall('上市时间:&nbsp;(.*?)</li>|季节:&nbsp;(.*?)</li>',ss)
tigs
[('', '2021年春季')]

我这里"|"是或的匹配,按道理应该只匹配一个,为啥这里显示2个结果呢?

阅读 1.2k
1 个回答

你的理解没错,确实一次只能命中「|」分隔的其中一个;但是,分组括号总是从左往右编号的,命中首个分组就是下标0的,命中下个分组就是下标1的……如果你有多个「|」且每组里都有分组括号,结果会更多,(a)|(b)|(c) 就可能出现 ('a','','') ('','b','') ('','','c') 这种结果。

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进