: p = re.compile(r'\]\s(.*?);|\]\s(.*)')
^^^^^ ^^^^
RE 中用小括号括起来的会进 Capturing group。
这是根据小括号出现的位置决定的,所以你写了2个小括号,自然就有 2 笔资料
: [("School 1", ""), ("", "School 2")
: 请问该怎么解决这个问题呢?
最简易的方法就是跑一遍 List 把空资料拿掉。
如果用 split 的话可以试试︰
re.split(r";?\s*\[[^\]]*\]\s*|\s+", s)