我是 PHP 中 Regex 的新手,我想知道如何匹配彼此相等或相似的单词。
例子:
我有“设计师”这个词和“设计”这个词,如果我们尝试将设计师与设计匹配将返回 false,但如果我们尝试将设计与设计师匹配,它将返回匹配。我需要使用一个 preg_match 语句来匹配这两种情况。
谁能帮我?
我是 PHP 中 Regex 的新手,我想知道如何匹配彼此相等或相似的单词。
例子:
我有“设计师”这个词和“设计”这个词,如果我们尝试将设计师与设计匹配将返回 false,但如果我们尝试将设计与设计师匹配,它将返回匹配。我需要使用一个 preg_match 语句来匹配这两种情况。
谁能帮我?
我相信您正在寻找词干: http ://en.wikipedia.org/wiki/Stemming
如果您只想匹配这两个词,请按照 nickb 的建议进行操作并保持简单。如果你想在很多词上复制这种匹配,那么你可以使用这个 PorterStemmer 类:http ://tartarus.org/~martin/PorterStemmer/php.txt
我认为您正在寻找的是可选匹配项:
/design(?:er)?/
括号将“er”分组,“?:”使其不被捕获,而“?” 以下使该组可选。
更一般地说,如果您想捕获一个单词或该单词的任何更长版本:
/design\w*/
匹配“设计”和零个或多个(“*”)字字符(“\w”)。