我希望能够找到所有单词" Monday"在我使用C#读取的文件中。 我可以读取该文件,我可以读取第一个星期一并获得其索引值,但我想要文件中所有星期一的索引值。
if (ElementS == "2")
{
Console.WriteLine("Enter The name of the day e.g. Monday, Tuesday etc.");
string ElementA = Convert.ToString(Console.ReadLine());
foreach (string Monday in DayLines)
{
string Mday = "Monday";
int Found = Search(DayLines, Mday);
Console.WriteLine("The index is {0}", Found);
}
它给出的输出是这样的:
// The index is 0
并且它为文件中的每个元素执行此操作,而不仅仅是星期一。
答案 0 :(得分:1)
我希望能够找到所有单词" Monday"在我读过的文件中 使用C#。
这应该有效:
static void Main()
{
string text = File.ReadAllText(@"e:\1.txt");
Regex regex = new Regex("Monday", RegexOptions.IgnoreCase);
Match match = regex.Match(text);
while (match.Success)
{
Console.WriteLine("'{0}' found at index {1}", match.Value, match.Index);
match = match.NextMatch();
}
}
答案 1 :(得分:0)
我想你想做这样的事情:
internal static void Main(string[] args)
{
var dayLines = new List<string>()
{
"Monday Monday Monday",
"Tuesday"
};
var dayToFind = Console.ReadLine();
foreach (var line in dayLines.Where(l => l.Contains(dayToFind)))
{
var index = -1;
do
{
index = line.IndexOf(dayToFind, index + 1);
if (index > -1)
Console.WriteLine("The index is {0}", index);
}
while (index > -1);
}
Console.ReadLine();
}
您需要一个内部循环,它使用前一个索引作为搜索的起始点。否则你只会继续获得第一个实例。
输出&#34;星期一&#34;:
The index is 0
The index is 7
The index is 14