我希望能够将句子匹配到单个结果作为示例
\w+
something
\w+ else
something \w+
所以当我说“ nothing
”时,它只会列出第一个条目,因为那是一个通配符。对于“ something here
”,它只会找到最后一个条目(单词加通配符)。
目前,当我匹配时,我得到了多个结果,但无法确定哪个是最佳匹配。
使用当前代码,当我说“ something
”时,我得到条目 1 和 2 之\w+
类的东西。应该默认某些东西,因为搜索的词是某物,
当前代码如下所示:
private Node BestMatch(string str)
{
return
(from p in Nodes
where Match(str, p.Value.Pattern)
select p.Value).LastOrDefault();
}
我还发现了一些搜索问题,比如它会得到第一个条目是通配符,而且出乎意料地还有最后一个“ something \w+
”,因为它不关心它应该关心的空格。