繁体   English   中英

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

[英]split string based on special characters in python

例如,字符串是hello %$ world %^& let me ^@ love && you预期结果将是一个变量中的 hello 而其他变量中的其余部分例如 a="hello" b="world" 等。

使用正则表达式

像这样:-

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

您可以使用(从字符串中检索世界的正则表达式):

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

请在正则表达式 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']

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

from nltk.tokenize import RegexpTokenizer 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM