亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以從c#中的文本文件中獲取指定字符串后字符串的字符

是否可以從c#中的文本文件中獲取指定字符串后字符串的字符

C#
qq_笑_17 2022-12-24 13:54:03
這是我的文本文件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名稱后面的數字,SUBSTRING沒有幫助,因為我必須指定那邊號碼的位置。不知道如何處理它,我已經完成了 google fo 大約一個小時左右請不要嘲笑我的嘗試:(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);            }
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

正則表達式可以幫助滿足這一要求。您可以使用正則表達式定義搜索模式,庫將找到與該模式匹配的所有結果。下面的代碼查找名稱“sara”之后的數字。


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();

        }

    }

}

關于模式的解釋:


saraPattern ( sara\s\w+\s\d+) 指出:找到一個字符序列,它以 " sara" 開頭,然后是空格字符 ( \s),然后是一個或多個單詞字符 ( \w+),然后再次是退格符 ( ),\s然后是一個或多個小數字符 ( \d+)


這種模式會找到像“sara monday 600”這樣的序列


numberPattern ( [\d\.\,]+) 聲明:查找包含一個或多個以下任意字符的字符序列:十進制 ( \d) 或逗號 ( \,) 或點 ( \.)


此模式將從先前找到的序列(例如“sara monday 600”)中提取數字(例如 600)


您可以在維基百科 ( https://en.wikipedia.org/wiki/Regular_expression )上檢查正則表達式,或者您可以遵循此站點上的基本教程:https ://regexone.com/


查看完整回答
反對 回復 2022-12-24
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

您的代碼中有錯誤。

你的這一行:

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

應該:

int index1 = Convert.ToInt32(readMeText.IndexOf("sara", 0));

評論: 1. 您需要使用 "(引號)而不是 '(撇號) 2. 您的字符串中沒有“SARA”,而是“sara”,這就是為什么您現在使用 -1 獲得索引。

如果對您有幫助,請告訴我!


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 93 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號