【问题标题】:Python - Check if a string contains multiple words [duplicate]Python - 检查字符串是否包含多个单词[重复]
【发布时间】:2016-08-21 20:42:51
【问题描述】:

我想知道 Python 2.7 中是否有一个函数可以检查字符串是否包含多个单词(例如在它们之间带有空格/标点符号的单词),类似于 .isalpha() 检查字符串是否包含只包含字母?

例如,如果存在与此类似的东西......

var_1 = "Two Words"

if var_1.containsmultiplewords():
print "Yes"

然后“是”将是输出。

谢谢!

【问题讨论】:

  • 只需拆分并检查 len 这将是基本解决方案
  • 如果你想正确地使用分词器。例如,您可以使用nltk

标签: python python-2.7


【解决方案1】:

基本实现

通常,您使用split() 将一串单词拆分成一个列表。如果列表包含多个元素,则为 True(即您可以打印 yes

def contains_multiple_words(s):
  return len(s.split()) > 1

标点符号支持

为了支持标点符号等,您可以通过re module's split 命令在正则表达式上进行拆分:

import re

def contains_multiple_words(s):
  return len(re.compile('\W').split(s)) > 1

正则表达式字符类 \W 表示任何单个-单词字符,例如标点符号或空格(详见Python regex syntax guide)。

因此,在此而不只是空格(第一个示例中的默认设置)上进行分割可以让“单词”的概念更加现实。

【讨论】:

  • 感谢@declension ,设法使用if len(var_1.split()) > 1: 打印我想要的东西。你介意解释一下你的标点符号部分是做什么的吗,我对 Python 还很陌生,对模块还是有点不适应?
  • 没问题 - 以上更新
  • 太好了,非常感谢! :)
【解决方案2】:

不,不存在这样的货架机制。

如果您的唯一目标是找出它是只有一个词还是存在另一个词,可以通过以下方式完成:

x = 'has words'
' ' in x
>>> True

【讨论】:

  • ...这会因尾随或前导空格而失败:' ' in ' one' == True
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2014-01-25
  • 2015-06-24
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多