在python中,如何从没有空格的字符串中提取单词?
我对python还是有点陌生,所以我被困在一个问题上,我不知道如何解决这个特定的问题 所以我们有一个像“thingicool”或“thingicool”这样的字符串 现在我需要以某种方式列出一个类似于[这个,东西,是,酷]或[这个,东西,是,酷]的列表 目前,我正在使用textblob,但我不确定他们是否有这样的方式来做这样的事情 我的意思是,我下载了语料库(我猜这是一个单词列表),但没有看到任何识别乱码字符串中的单词和提取单词的功能。留下一个列表作为输出 因此,我想解决的问题是,至少能够用大写字母拆分一个。然而,我不知道如何在python中实现这一点 所以问题是在python中,如何从没有空格的字符串中提取单词?,python,string,split,tweepy,textblob,Python,String,Split,Tweepy,Textblob,我对python还是有点陌生,所以我被困在一个问题上,我不知道如何解决这个特定的问题 所以我们有一个像“thingicool”或“thingicool”这样的字符串 现在我需要以某种方式列出一个类似于[这个,东西,是,酷]或[这个,东西,是,酷]的列表 目前,我正在使用textblob,但我不确定他们是否有这样的方式来做这样的事情 我的意思是,我下载了语料库(我猜这是一个单词列表),但没有看到任何识别乱码字符串中的单词和提取单词的功能。留下一个列表作为输出 因此,我想解决的问题是,至少能够用大写
谢谢使用
re
模块
>>> a = 'ThisThingIsCool'
>>> import re
>>> re.findall(r'[A-Z][a-z]*', a)
['This', 'Thing', 'Is', 'Cool']
>>> [i.lower() for i in re.findall(r'[A-Z][a-z]*', a)]
['this', 'thing', 'is', 'cool']
>>> list(map(str.lower, re.findall(r'[A-Z][a-z]*', a)))
['this', 'thing', 'is', 'cool']
使用
re
模块
>>> a = 'ThisThingIsCool'
>>> import re
>>> re.findall(r'[A-Z][a-z]*', a)
['This', 'Thing', 'Is', 'Cool']
>>> [i.lower() for i in re.findall(r'[A-Z][a-z]*', a)]
['this', 'thing', 'is', 'cool']
>>> list(map(str.lower, re.findall(r'[A-Z][a-z]*', a)))
['this', 'thing', 'is', 'cool']
使用正则表达式,按大写字母拆分相当容易:
s = "ThisThingIsCool"
re.findall(r'[A-Z][^A-Z]*', s)
#['This', 'Thing', 'Is', 'Cool']
一般的解决方案要困难得多,可能需要动态规划。使用正则表达式按大写字母拆分相当容易:
s = "ThisThingIsCool"
re.findall(r'[A-Z][^A-Z]*', s)
#['This', 'Thing', 'Is', 'Cool']
通用解决方案要困难得多,可能需要动态编程。使用
^
而不是显式指定每个正则表达式,使解决方案更通用!使用^
而不是显式指定每个正则表达式使解决方案更通用!您的解决方案忽略了一个字母的单词和可能的非字母字符。您的解决方案忽略了一个字母的单词和可能的非字母字符。您的问题很难轻松解决,例如,您如何处理adultsexchange
-[成年人,交换]
或['成人','sex','change']
?查看您的要求很难轻松完成,例如,您如何处理成人性改变-[成人,交换]
或[“成人”,“性”,“改变”]
?查看