2012-06-01 38 views
0

我在解析Sting2時遇到了問題。思考?Python:通過忽略右邊的第一個空格進行分析/拆分

String1 = "THIS IS STRING1 18-23-80-18" 

String2 = "THIS IS STRING2 7-A-4, 4-93-P" 

Split1 = String1.rsplit(" ",2) 

Output1 = "18-23-80-18" #This Works fine 

Split2 = String2.????? # Not sure what to do here 

Output2 = "7-A-4, 4-93-P" #How do I Ignore the first space from the right? 

澄清:

*代表我試圖忽視的空間和%代表我想找到的空間。

"%7-A-4,*4-93-P" 

謝謝。

+0

你怎麼知道你要保留'*'空間而不是'%'空間?當你查看字符串並確定(作爲人類而不是程序)在何處分割它時,你在尋找什麼? –

+0

*代表一個始終包含在字符串中的空格,但它將被忽略。 –

+0

我的意思是:當你看到'這是STRING2 7-A-4,4-93-P''時,你說你想把它分成'(「THIS IS STRING2」,「7-A-4 ,4-93-P「)'。但爲什麼它不是,例如'(「THIS IS」,「STRING2 7-A-4,4-93-P」)?什麼是**特別**關於你想用於拆分的空間?你怎麼知道**這是你想分裂的空間? –

回答

1

使用正則表達式來分割字符串:

>>> import re 
>>> string2 = "THIS IS STRING2 7-A-4, 4-93-P" 
>>> re.split(r'[^,]\s+', string2)[-1] 
'7-A-4, 4-93-P' 
+0

我選擇這個答案是因爲它可能並不總是從左邊開始的第三個空格。 –

+0

你必須是通靈的! –

3

如果你有興趣的分裂上左第三空間的串並後忽略所有其他人的權利,那麼:

>>> String2 = "THIS IS STRING2 7-A-4, 4-93-P" 
>>> String2.split(" ", 3)[3] 
'7-A-4, 4-93-P' 

一般方法是將整個字符串上的空格分開,然後從您想要的範圍中選擇。然後使用空格加入該範圍。

" ".join(string.split()[1:3]) 
相關問題