-2

我是 PHP 中 Regex 的新手,我想知道如何匹配彼此相等或相似的单词。

例子:

我有“设计师”这个词和“设计”这个词,如果我们尝试将设计师与设计匹配将返回 false,但如果我们尝试将设计与设计师匹配,它将返回匹配。我需要使用一个 preg_match 语句来匹配这两种情况。

谁能帮我?

4

2 回答 2

2

我相信您正在寻找词干: http ://en.wikipedia.org/wiki/Stemming

如果您只想匹配这两个词,请按照 nickb 的建议进行操作并保持简单。如果你想在很多词上复制这种匹配,那么你可以使用这个 PorterStemmer 类:http ://tartarus.org/~martin/PorterStemmer/php.txt

于 2012-09-21T13:46:03.897 回答
1

我认为您正在寻找的是可选匹配项:

/design(?:er)?/

括号将“er”分组,“?:”使其不被捕获,而“?” 以下使该组可选。

更一般地说,如果您想捕获一个单词或该单词的任何更长版本:

/design\w*/

匹配“设计”和零个或多个(“*”)字字符(“\w”)。

于 2012-09-21T13:26:23.143 回答