栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从python中的字符串中提取英语单词

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从python中的字符串中提取英语单词

您实际上有两个问题。

首先,这:

line = re.sub("[^A-Za-z]", "", line.strip())

这将从行中删除所有非字母。这意味着您将不再有任何空格可分割,因此无法将其分隔为单词。

接下来,即使您没有这样做,也可以这样做:

words = ' '.join(line.split())

这不会给您单词列表,而是给您一个字符串,所有这些单词都串联在一起。(基本上,所有空白行的原始行都转换为一个空格。)

因此,在下一行中,当您执行此操作时:

for word in words:

您正在遍历一个字符串,这意味着每个字符串

word
都是一个字符。因为这就是字符串:字符的可迭代数。

如果您想要每个单词(正如您的变量名所暗示的那样),那么您已经拥有了这些单词,问题在于您将它们重新加入了一个字符串中。只是不要这样做:

words = line.split()for word in words:

或者,如果要去除字母和空格之外的内容,请使用正则表达式去除字母和空格之外的所有内容,而不要使用除字母和空格之外的所有内容(包括空格)的正则表达式:

line = re.sub(r"[^A-Za-zs]", "", line.strip())words = line.split()for word in words:

但是,该模式可能仍然不是您想要的。您是否真的要

'abc1def'
变成一个字符串
'abcdef'
,还是变成两个字符串,
'abc'
然后
'def'
?您可能想要这样:

line = re.sub(r"[^A-Za-z]", " ", line.strip())words = line.split()for word in words:

… 要不就:

words = re.split(r"[^A-Za-z]", line.strip())for word in words:


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668004.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号