我有一串看起来像这样的文本:
' 19,301 14,856 18,554'
空格在哪里。
我试图在空白处拆分它,但我需要保留所有空白作为新列表中的一项。像这样:
[' ', '19,301',' ', '14,856', ' ', '18,554']
我一直在使用下面的代码:
re.split(r'( +)(?=[0-9])', item)
它返回:
['', ' ', '19,301', ' ', '14,856', ' ', '18,554']
请注意,它总是在列表的开头添加一个空元素。放弃它很容易,但我真的很想了解这里发生了什么,所以我可以获得代码来一致地处理事情。谢谢。
最佳答案
使用re.split
方法时,如果捕获组在字符串的开头匹配,则为“result will start with an empty string”。这样做的原因是 join
方法的行为与 split
方法相反。
对于您的情况可能没有多大意义,因为分隔符匹配的大小不同,但是如果您考虑分隔符是 |
字符的情况并且您想要执行加入它们,加上额外的空字符串就可以了:
>> item = '|19,301|14,856|18,554'
>> items = re.split(r'\|', item)
>> print items
['', '19,301', '14,856', '18,554']
>> '|'.join(items)
'|19,301|14,856|18,554'
但如果没有它,初始管道将丢失:
>> items = ['19,301', '14,856', '18,554']
>> '|'.join(items)
'19,301|14,856|18,554'
关于python - 在 python 中用空格重新拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005907/