2016-11-11 70 views
1

我知道這個問題已經被問了幾次,但是我要求的不是如何做,而是應該使用哪個分隔符。在python中分割字符串的分隔符

所以我有一個很長的字符串,我想把它分成單詞。結果不是我想要的,所以我想添加另一個分隔符。

問題是在字符串中有vs.U.S.之類的詞。如果我使用.作爲分隔符,我將得到vs,但U.S.變成US。這不是我想要的。

另一個示例中,有單詞brainf*ck*7F***ingx*x+y*yworks*字符串中f*k。如果我使用*作爲分隔符,結果會很凌亂(brainf*ck變得brainfckF***ing變得Fing,等等)

'分隔符有同樣的問題; (don't'startingout'what'sdo'sdont's

-=+()也有一些小的問題,但我可以處理那些分隔符。問題出在.*'

有沒有人有任何想法如何解決這個問題?

+1

恕我直言,這是一個非常棘手的問題。您可能需要對可能發生的可能性類型進行分類,並查看是否可以提取模式。如果你能夠分類,那麼你手邊有一個具體的問題,否則它是x-y問題。 – Nishant

+1

也許你最好使用這個正則表達式。 (re模塊) –

+0

爲什麼不用'空格'來分割單詞? –

回答

0

怎麼樣重新使用:

import re 
text = 'U.S. vs. brainf*ck *7 F***ing x*x+y*y works* f*k' 
get = re.split('\s', text) 

# ['U.S.', 'vs.', 'brainf*ck', '*7', 'F***ing', 'x*x+y*y', 'works*', 'f*k'] 

#Example 
print(get[0]) # U.S. 
print(get[1]) # vs.