Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python正则表达式从文本中提取单词_Python_Regex - Fatal编程技术网

使用python正则表达式从文本中提取单词

使用python正则表达式从文本中提取单词,python,regex,Python,Regex,我有一个文本(字符串),我想在python中执行此任务: 我执行CountVectorizer方法以生成一个单词包。您可以在此处找到此方法: 此方法包括停止字删除,效果良好。它删除任何标点符号并打断每个单词。但是除了单词之外,它还返回很多垃圾,比如单个字母和数字 不过,这个方法有一个名为“token_pattern”的参数,它接受一个字符串(regex),可以给我更好的结果 我想做的是: a) 排除任何以数字开头、结尾或包含数字的单词。 b) 从文本中排除任何数字 c) 排除anywords我不

我有一个文本(字符串),我想在python中执行此任务:

我执行CountVectorizer方法以生成一个单词包。您可以在此处找到此方法:

此方法包括停止字删除,效果良好。它删除任何标点符号并打断每个单词。但是除了单词之外,它还返回很多垃圾,比如单个字母和数字

不过,这个方法有一个名为“token_pattern”的参数,它接受一个字符串(regex),可以给我更好的结果

我想做的是: a) 排除任何以数字开头、结尾或包含数字的单词。 b) 从文本中排除任何数字
c) 排除anywords我不懂python,但regex对于任何编程语言都是一样的,所以我的答案是:

"(\s?\w+[0-9]+\w+\s?)|([0-9]+)|(\s\w\w\s)|(http://t.co/)"g

这里有一个正则表达式,它可以抓取任何由长度为3或3以上的字母组成的单词

[a-zA-Z]{3,}

这里有一个正则表达式,它可以捕获任何一行,但不包含URL

^((?!(https?:\/\/)+([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w=?$#% \.-]*)).)*$

我还没有想出如何将两者结合起来。但至少,这是朝着正确方向迈出的一步。您可以将每个单词放在自己的行上,然后删除URL,然后匹配3个或更多字母的单词。难看,但会奏效。

你能展示一下你迄今为止的尝试吗?你能展示一个你的正则表达式的实例吗?我在
regex101
上对OP的文本进行了测试,但它根本不起作用,在这张图中,你可以看到它对我很好[1]:对于你的第一个正则表达式,使用这个正则表达式[a-zA-Z]{3,}不是更容易吗?是的,我以为有这样的解决方案,但不知道逗号功能。编辑。只是为了解释,{x,y}意味着匹配最小x倍和最大y倍。当使用任何零件时,这意味着我们只需要最小-最大值的一个零件。