我有一个像这样的字符串:
'Agendas / Schedules meetings and speakers 4 F 1928-1209 Box 2'
我正在尝试将其拆分为看似选项卡的内容。虽然如果我用 print repr(str)
打印,我只会在末尾看到特殊字符:
'Agendas / Schedules meetings and speakers 4 F 1928-1209 Box 2\r\n'
如果我尝试诸如 print re.split('\t+', str)
或 print re.split('\s+', str)
之类的事情,什么也没有被分割,即输出仍然是:
['Agendas / Schedules meetings and speakers 4 F 1928-1209 Box 2\r\n']
如果正则表达式不起作用,有没有办法隔离这些固定宽度的项目?
更新:我希望仅在较大的空白处进行分割,因此 .split() 创建每个单词的列表元素并不是我想要的。
最佳答案
我过去曾多次遇到过这种情况,您可能会遇到零宽度空间的情况。
>>> s = 'Agendas / Schedules meetings and speakers 4 F 1928-1209 Box 2'
>>> re.split(ur'[\u200b\s]+', s, flags=re.UNICODE)
['Agendas', '/', 'Schedules', 'meetings', 'and', 'speakers', '4', 'F', '1928-1209', 'Box', '2']
关于python split 和 re.split 不捕获字符串中出现的制表符或空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231330/