gpt4 book ai didi

c# - 子串匹配索引

转载 作者:行者123 更新时间:2023-11-30 23:24:11 24 4
gpt4 key购买 nike

我有一个家庭作业问题,我需要使用正则表达式和 LINQ 来提取给定字符串数组中的子字符串索引并将它们打印出来。更具体地说,问题是:

为确定(使用正则表达式和 LINQ)确定字符串是否包含“ou”或“in”作为子字符串然后返回开始索引的字符串编写正确、优雅且高效的扩展方法每个子字符串,如果存在任何索引,则返回 true,如果没有有效索引,则返回 false。注意:确保在索引数组中放置一个 -1 标记。

这是我目前写的代码

public static void Main()
{
Regex regex1 = new Regex(@"ou", RegexOptions.IgnoreCase);
Regex regex2 = new Regex(@"in", RegexOptions.IgnoreCase);
string[] sData = new string[] {"Sour", "Candy", "apple",
"Hotdog", "Jumping", "Pompadour", "Insane"};

var selected2 = from strings in sData
let matches2 = regex2.Match(strings)
select matches2;
var selected1 = from strings in sData
let matches = regex1.Match(strings)
select matches;

foreach (var match in selected1)
{
WriteLine($"{match.Index}");
}
WriteLine();
foreach (var match in selected2)
{
WriteLine($"{match.Index}");
}
ReadKey(true);
}

我遇到的问题是 foreach 打印出一个全零数组,在没有匹配项的地方和有匹配项的地方打印它在字符串中的索引,这很好,但问题似乎是想要 -1 而不是没有匹配项的零。这当然是有道理的,因为如果匹配为零怎么办?如果索引存在,我也不知道如何让它返回 true,如果不存在,则返回 false。如果有人擅长 LINQ,我将非常感谢您的帮助!

最佳答案

Also I have no clue on how to make it return true if the indices exist and false if not

您应该寻找Match.Success,它指示匹配是否成功。

当涉及到演示时(因为匹配不成功时需要 -1),您可以处理条件运算符。

WriteLine($"{(match.Success? match.Index: -1)}");

关于c# - 子串匹配索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37958054/

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