gpt4 book ai didi

C# 林奇 : how to handle wildcard search?

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:59 25 4
gpt4 key购买 nike

我需要这样的搜索功能:该函数接受具有多种通配符类型的所有字符串:

* or % >>> can replace one or more characters
# >>> used to replace a number
@ >>> used to replace an alphabet
? >>> used to replace a character (can be both number and alphabet)

据我所知,在 LINQ 中有 3 个用于搜索字符串的函数:StartsWith、EndsWith 和 Contains。在 SQL 查询中,LIKE 有两种类型:% 代表一个或多个字符,_ 只代表一个字符。那么,我该如何解决这个问题呢?

非常感谢

最佳答案

您可以使用正则表达式并将通配符替换为正则表达式。这是一个例子。

    IEnumerable<string> Search(IEnumerable<string> data, string q)
{
string regexSearch = q
.Replace("*", ".+")
.Replace("%", ".+")
.Replace("#", "\\d")
.Replace("@", "[a-zA-Z]")
.Replace("?", "\\w");

Regex regex = new Regex(regexSearch);

return data
.Where(s => regex.IsMatch(s));
}

关于C# 林奇 : how to handle wildcard search?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18814084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com