2016-11-11 108 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.