C#从.txt文件中读取字符串

C#从.txt文件中读取字符串,c#,C#,my.txt文件的一个片段如下所示: 18 Ladders/ladder_trigger (18 triggers) (18 enabled) 17 assets/prefabs/player/player_model.prefab/collision (0 triggers) (1 enabled) 17 assets/prefabs/misc/xmas/poweredlights/xmas.advanced.lights.deployed.prefab (0 triggers) (17

my.txt文件的一个片段如下所示:

18  Ladders/ladder_trigger (18 triggers) (18 enabled)
17  assets/prefabs/player/player_model.prefab/collision (0 triggers) (1 enabled)
17  assets/prefabs/misc/xmas/poweredlights/xmas.advanced.lights.deployed.prefab
(0 triggers) (17 enabled)
有+1000行,它们的顺序总是随机的。 我的问题是,我试图从一行中获取一个int,该行始终包含文本assets/prefacts/player/player\u model.prefacte/collision,该行包含启用的值的数量,并将其输出到控制台中。 始终只有一行包含资产/prefacts/player/player\u模型。prefacte/collision但启用的值的数量可能不同,并且它在文本文件中的位置始终不同。 我试图检查整个文本文件中的某个字符串,然后试图从中找出如何获得该数字,但我不知道如何做到这一点。 下面是我的代码的一部分,它可以很好地工作,但只用于检查文件是否包含该字符串,而不用于获取后面的数字

            string[] words = File.ReadAllText(@"C:\Users\azir\Desktop\KelosRPR\Physics.Colliders.Objects.txt").Split(' ');
            string wordtobesearched = "assets/prefabs/player/player_model.prefab/collision";
            bool condition = false;
            for (int i = 0; i < words.Length; i++)
            {
                if (words[i].Contains(wordtobesearched) == true)
                {
                    condition = true;
                    break;
                }
                else
                {
                    condition = false;
                }
            }
            if (condition == true)
            {
                Console.WriteLine("{0} found in data", wordtobesearched);
            }
            else
            {
                Console.WriteLine("{0} not found in data", wordtobesearched);
            }

string[]words=File.ReadAllText(@“C:\Users\azir\Desktop\kelosrp\Physics.Colliders.Objects.txt”).Split(“”);
string wordtobesearched=“资产/预制件/播放器/播放器\模型.预制件/碰撞”;
布尔条件=假;
for(int i=0;i
您可以使用regex查找启用的
编号。这里有一个例子

var text = File.ReadAllText(@"C:\Users\azir\Desktop\KelosRPR\Physics.Colliders.Objects.txt");
var wordtobesearched = "assets/prefabs/player/player_model.prefab/collision";
var regex = new Regex($"{wordtobesearched}.*?\\((\\d+) enabled\\)");
var number = int.Parse(regex.Match(text).Groups[1].Value);

你能分享你的代码吗?你在哪里遇到麻烦了?@Stenperov你能告诉我们用户在尝试这项任务时做了什么,他们的错误在哪里吗?一旦你找到了包含搜索词的行,你就跳出了循环,而不是在这行中搜索整数。谢谢Rufus L,它对我有效。你想逐行阅读吗,查找模式,找到后获取编号,然后退出循环。无需将文件中的所有单词读入数组。这是低效的。