我有一串看起来像这样的文字:
' 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
方法时,如果捕获组在字符串的开头匹配,则“结果将从空字符串开始”。这样做的原因是使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'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句