如何判断字符串是否包含我要查找的确切字词?
例子:“这是我的文字”;寻找的词:“文字”;发现:是的。
例子:“这些是我的文本”;寻找的词:“文字”;发现:没有。
修改
这或多或少是我现在正在做的事情,我想用一个仅在完全匹配时返回的函数替换它。
using (Model.Manager ctx = new Model.Manager())
{
var result = from p in ctx.Companies where p.Name.Contains(workLookingFor) select p;
}
到目前为止解决方案:
我可以在我的数据库上使用.Contains()并对从DB中提取的结果使用RegEx。由于完全匹配总是在.Contains()(我仍然需要)的更广泛的结果内,这可能是一个很好的解决方案
答案 0 :(得分:2)
这对我有用。它并不完美但可能有所帮助。
public static bool matchWholeWord(string test, string search)
{
var index = test.IndexOf(search);
if (index == -1)
return false;
var after = index + search.Length;
if (after == test.Length)
return true;
return !char.IsLetterOrDigit(test[after]);
}
你的代码中的:
using (Model.Manager ctx = new Model.Manager())
{
var result = from p in ctx.Companies
where matchWholeWord(p.Name, workLookingFor)
select p;
}
答案 1 :(得分:0)
我不得不使用与此类似的东西来实现最近使用LINQ的搜索算法。我发现有关组合LINQ and Regular Expressions的MSDN文章以及使用空格标记来识别空格的正则表达式是有用的。通过使用我的搜索参数构造正则表达式并将其组合到我的LINQ表达式中,我最终得到了我需要的东西。