基于python中的特殊字符拆分字符串

时间:2018-02-14 10:34:41

标签: python string split ascii

例如,字符串是hello %$ world %^& let me ^@ love && you,预期结果在一个变量中是hello,而在其他变量中是休息示例a =" hello" B ="世界"等

3 个答案:

答案 0 :(得分:0)

使用正则表达式

像这样: -

import re
a = "hello %$ world %^& let me ^@ love && you"
print(re.findall(r'\w+',a))

答案 1 :(得分:0)

您可以使用(regular expressions从字符串中检索世界):

import re
my_string = "hello %$ world %^& let me ^@ love && you"
re.findall(r'\w+\b', my_string)
# ['hello', 'world', 'let', 'me', 'love', 'you']

请参阅Regular Expression HOWTO

中有关正则表达式的详情

更新

正如评论中所述,附加正则表达式以检索由特殊字符分隔的单词组:

my_string = "hello world #$$ i love you #$@^ welcome to world"
re.findall(r'(\w+[\s\w]*)\b', my_string)  
# ['hello world', 'i love you', 'welcome to world']

答案 2 :(得分:0)

基本答案是正则表达式。我建议从NLTK查找tokenizer,它们包含对该主题的研究,并让您可以灵活地切换到稍后更复杂的东西。你猜怎么着?它也提供了基于Regexp的标记器!

from nltk.tokenize import RegexpTokenizer 

tokenizer = RegexpTokenizer(r'([A-Za-z0-9 ]+)')
corpus = tokenizer.tokenize("hello %$ world %^& let me ^@ love && you")