gpt4 book ai didi

c# - 用 * 过滤,这将限制所有以 Null 开头的值?

转载 作者:太空狗 更新时间:2023-10-30 00:31:09 24 4
gpt4 key购买 nike

我有以下代码,它扩展了我的过滤器功能,允许我搜索多个邮政编码。前任。 (1254,125,145,1455)

当前代码:

if (Post_Code_PAR != null)
{
String[] PostCode_Array = Post_Code_PAR.Split(',');
query = from p in query where PostCode_Array.Contains(p.Post_Code) select p;
}

我想扩展这段代码,如果我给它类似 (0*) 的东西,它会找到以 0 开头的邮政编码。如果我给它 123*,它会给我所有以 123 开头的邮政编码. 非常感谢。

最佳答案

使用正则表达式:

例子:

IEnumerable<string> allInputs = new[] {"70000", "89000", "89001", "90001"};
string commaSeparatedPostCodePatterns = @"89000 , 90\d\d\d";

if (string.IsNullOrWhiteSpace(commaSeparatedPostCodePatterns))
return;

string[] postCodePatterns = commaSeparatedPostCodePatterns
.Split(',')
.Select(p => p.Trim()) // remove white spaces
.ToArray();

var allMatches =
allInputs.Where(input => postCodePatterns.Any(pattern => Regex.IsMatch(input, pattern)));

foreach (var match in allMatches)
Console.WriteLine(match);

有了这样的问题,最初的要求非常简单,但很快变得越来越复杂(由于国际化,规则的异常(exception),一些聪明的测试人员测试了一个意想不到的极限情况,比如 90§$% ...)。所以正则表达式提供了最好的权衡简单性和可扩展性

* 等价的正则表达式是 .*。但在您的情况下,您宁愿需要更多限制性模式并使用匹配单个数字的 \d 占位符。可选数字为 \d?。零个或多个数字将是 \d*。一个或多个数字将是 \d+。请查看文档以获取更多详细信息。

关于c# - 用 * 过滤,这将限制所有以 Null 开头的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29648425/

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