我想搜索我的数据。我正在使用带有IsMatch()函数的正则表达式。
我有一个班级:
public class MyClass
{
public string Name { get; set; }
public string Address { get; set; }
}
我想通过名称或地址,名称或地址类似输入搜索我的数据
输入模糊搜索是:a%b
或a%b%c
或日文字符(例如:区%水
)。
在main函数中,我有一个列表:List<MyClass> data
并使用带有IsMatch()函数的正则表达式,如下所示:
Regex regex = new Regex(FuzzySearch, RegexOptions.IgnoreCase);
var allInfoList1 = allInfoList.Where(x => regex.IsMatch(x.Name) ||
regex.IsMatch(x.Address)).ToList();
某些时候结果是真的,但有时结果是错误的(案例输入是日文字符)
(正则表达式不支持unicode吗?) 还有其他解决方案吗?
答案 0 :(得分:1)
我建议您考虑使用Apache Lucene或Apache Solr等工具,而不是实施自己的文档搜索引擎。我不知道你的具体用例,也许我的建议太过分了,但我会考虑一下。
希望我帮忙!