python split 和 re.split 不捕获字符串中出现的制表符或空格

标签 python regex string python-2.7 split

我有一个像这样的字符串:

'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/

相关文章:

javascript - JS 将正则表达式拆分为两个不同的字符

python - 在 python 中打印列表中的所有项目时出现问题

php - 捕获行尾字符串,但避免捕获匹配的尾随字符

java - 确定 Grails 是字符串数组还是字符串数组

python - 识别并中断异常 : 'OpenSSL.SSL.Error' using python's requests module

python - 如何根据 4xx 或 5xx HTTP 状态代码使 django 模型原子性回滚

java - 在java中为具有特殊字符的字符串赋值,例如\"和其他字符

java - 将字符串拆分为 unicode 单词? (特别是越南语)

python - django/休息 : Can I have serializer with only one field?

python - 如何在 DRF 中对序列化程序自定义字段的值进行排序