none
字串處理 Split replace RRS feed

  • 問題

  • 目前我需要處理使用者輸入的內容,並取代其內容。

    使用者輸入的內容 [1][2]3[1][3]

    我要計算[1][2][3]出現的次數。

    並逐一取代這些代數

    一開始我使用Split去分割 '[' , ']'

    得到字串陣列 但是我發現 3卻計數兩次,這就發生了不是我期待的狀況。

    問題1 我該如何正確的計數備中括號包圍內的數字 [{0}]

    問題2 我該如何逐一取代 代數 [1] 由左至右第一個為 a, ab 結果會是 a[2]3ab[3]


    Learn

    2013年2月8日 上午 09:23

解答

  • string pattern = @"\[[0-9]\]";
                string sentence = "[1][2]3[1][3]";
                MatchCollection matches = Regex.Matches(sentence, pattern);
                for (int ctr = 0; ctr < matches.Count; ctr++)
                {
                    Console.WriteLine(matches[ctr].Value);
                }   

    請參閱

    http://msdn.microsoft.com/zh-tw/library/system.text.regularexpressions.matchcollection.item.aspx

    2013年2月8日 上午 09:41