Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以从c语言的文本文件中获取指定字符串后的字符串字符#_C#_Read Write - Fatal编程技术网

C# 是否可以从c语言的文本文件中获取指定字符串后的字符串字符#

C# 是否可以从c语言的文本文件中获取指定字符串后的字符串字符#,c#,read-write,C#,Read Write,这是我的文本文件 john monday 500 sara monday 600 sunny monday 1200 john monday 500 sara monday 300 sunny monday 2200 john monday 400 sara monday 100 sunny monday 500 john monday 520 sara monday 600 sunny monday 10 john monday 990 sara monday 850 sunny monday

这是我的文本文件

john monday 500 sara monday 600 sunny monday 1200 john monday 500 sara monday 300 sunny monday 2200 john monday 400 sara monday 100 sunny monday 500 john monday 520 sara monday 600 sunny monday 10 john monday 990 sara monday 850 sunny monday 1000 john monday 300 sara monday 200 sunny monday 
是否有任何方法可以读取数据并将其保存在SARA名称后的字符串中,例如,从上面的文本文件中,我只需要SARA名称后的数字,子字符串没有帮助,因为我必须在那里指定数字的位置。我不知道如何处理它,我已经做了谷歌fo现在大约一个小时左右

请不要嘲笑我的尝试:(


正则表达式有助于满足这一要求。您可以使用正则表达式定义搜索模式,库将找到与该模式匹配的所有结果。 下面的代码查找名称“sara”后面的数字

关于模式的解释:

saraPattern
sara\s\w+\s\d+
)声明:查找以“
sara
”开头的字符序列,然后后跟空格字符(
\s
),然后后跟一个或多个单词字符(
\w+
),然后再后跟一个退格(
\s
)然后后跟一个或多个十进制字符(\d+)

这种模式会出现像“sara monday 600”这样的序列

numberPattern
[\d\,]+
)表示:查找包含以下任意一个或多个字符的字符序列:十进制(
\d
)或逗号(
\,
)或点(
\。

此模式将从以前找到的序列(例如“sara monday 600”)中提取数字(例如600)


您可以在wikipedia()上检查正则表达式,也可以在此网站上学习基本教程:

正则表达式可以帮助满足此要求。您可以使用正则表达式定义搜索模式,库将找到与该模式匹配的所有结果。 下面的代码查找名称“sara”后面的数字

关于模式的解释:

saraPattern
sara\s\w+\s\d+
)声明:查找以“
sara
”开头的字符序列,然后后跟空格字符(
\s
),然后后跟一个或多个单词字符(
\w+
),然后再后跟一个退格(
\s
)然后后跟一个或多个十进制字符(\d+)

这种模式会出现像“sara monday 600”这样的序列

numberPattern
[\d\,]+
)表示:查找包含以下任意一个或多个字符的字符序列:十进制(
\d
)或逗号(
\,
)或点(
\。

此模式将从以前找到的序列(例如“sara monday 600”)中提取数字(例如600)


您可以在wikipedia()上检查正则表达式,也可以在此网站上学习基本教程:

您的代码中有一个bug

你的这一行:

int index1=Convert.ToInt32(readMeText.IndexOf('SARA',0))

应该是:

int index1=Convert.ToInt32(readMeText.IndexOf(“sara”,0))

评论: 1.您需要使用“(引号)而不是“(撇号) 2.字符串中没有“SARA”,但有“SARA”,这就是为什么此时索引为-1


如果它对您有帮助,请告诉我!

您的代码中有一个bug

你的这一行:

int index1=Convert.ToInt32(readMeText.IndexOf('SARA',0))

应该是:

int index1=Convert.ToInt32(readMeText.IndexOf(“sara”,0))

评论: 1.您需要使用“(引号)而不是“(撇号) 2.字符串中没有“SARA”,但有“SARA”,这就是为什么此时索引为-1


请让我知道它是否对您有帮助!

使用indexOf('SARA')是的,向我们展示您的努力。了解如何使用indexOf('SARA')我对编程有点陌生,regex帮不了这个兄弟我可以在regex中找到SARA,但不能在iTunes indexOf('SARA')后找到数字是的,向我们展示您的努力。了解如何使用indexOf('SARA'))我对编程有点陌生,正则表达式帮不上忙,我在正则表达式中可以找到SARA,但不能找到后面的数字,直到无法获得逻辑我是这样一个noob。我试图解释我在代码示例中使用的模式,直到无法获得逻辑我是这样一个noob。我试图解释我在代码示例中使用的模式
using (StreamReader readtext = new StreamReader("F:\\spokeo\\2.txt"))
     {
                string readMeText = readtext.ReadLine();
                Console.WriteLine(readMeText);

                int index1 = Convert.ToInt32(readMeText.IndexOf('SARA', 0));


                Console.WriteLine("The Index Value of character 'SARA' " +
                                  "with start index 0 is " + index1);

            }
using System;
using System.Text.RegularExpressions;

namespace consoleapp
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "john monday 500 sara monday 600 sunny monday 1200 john monday 500 sara monday 300 sunny monday 2200 john monday 400 sara monday 100 sunny monday 500 john monday 520 sara monday 600 sunny monday 10 john monday 990 sara monday 850 sunny monday 1000 john monday 300 sara monday 200 sunny monday";
            var saraPattern = new Regex(@"sara\s\w+\s\d+");
            var numberPattern = new Regex(@"[\d\.\,]+");
            var matches = saraPattern.Matches(text);
            foreach (Match match in matches)
            {
                var numbermatch = numberPattern.Match(match.Value);
                var number = float.Parse(numbermatch.Value);
                Console.WriteLine(number);
            }
            Console.ReadKey();
        }
    }
}