在字符串

时间:2015-12-02 16:53:39

标签: php regex

我正在尝试在字符串中获取类似的单词。假设我有一组5个关键字。

猫,狗,动物,食物,水

我有一个像这样的字符串

"猫是一种动物,但与狗不同。两种食物的食物都不一样。但他们都喝水。"

如果我在这种情况下尝试使用strpos,我可能只会找到一个相似的单词" water"但实际上也有其他人。什么可以帮助我实现检测上述句子中的所有关键词?

2 个答案:

答案 0 :(得分:0)

您可能遇到区分大小写的问题。尝试使用stripos() function。它也可能是多元化或收缩的问题,在这种情况下a regular expression可能会使这更容易。

答案 1 :(得分:0)

使用正则表达式 -
这可能会减轻收缩和边界标点符号等 如果检测到相似性,则需要更精细的技术 到字符级别。

(?i)(?<!\S)(?:cat(?:'?s)?|dog(?:'?s)?|animal(?:'?s)?|food|water)(?:(?=\p{P})|(?!\S))

格式化:

 (?i)
 (?<! \S )
 (?:
      cat
      (?: '?s )?
   |  dog
      (?: '?s )?
   |  animal
      (?: '?s )?
   |  food
   |  water
 )
 (?:
      (?= \p{P} )
   |  (?! \S )
 )