Re: [問題] 取出字串中括號內容

看板C_Sharp作者 (好無聊)時間15年前 (2010/10/02 14:35), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《QuestionTwo (QuestionTwo)》之銘言: : string str = "王小明(00001)"; : 想要單獨取出 00001 這個內容。 : 於是想到使用substring 看能不能達到 : 找了半天,後來使用了 : Regex reg = new Regex("[0-9]{1,}"); : string show = reg.Match(test).ToString(); : 這方法可以正確取出00001 : 但如果"王小明"變成"王小明2"就會取出"2" : 如果寫成:Regex reg = new Regex("\([0-9]{1,}\)"); : 就會把不要的括號也取出來: (00001) : 另外一個方法: : char[] sep = {'(',')'}; : string[] str = test.Split(sep, StringSplitOptions.RemoveEmptyEntries); : 然後取出str[1]就是00001 : 請問有沒有更好的方法 從符號"("開始取字串,到")"符號後結束? 土法煉鋼自己來比較快 static string GetString(string Input) { StringBuilder SB = new StringBuilder(); bool In = false; foreach (char C in Input) { if (In) { if (C == ')') { In = false; } else { SB.Append(C); } } else { if (C == '(') { In = true; } } } return SB.ToString(); } -- 我就是喜歡從後面來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.110.202

10/03 11:52, , 1F
有好工具 Regular Expression 不用自己煉鋼實在不會比較快
10/03 11:52, 1F

10/03 11:53, , 2F
原po的問題是出在不熟悉RegExp的使用吧...
10/03 11:53, 2F

10/03 15:49, , 3F
是這樣沒錯.....
10/03 15:49, 3F

10/06 13:10, , 4F
感謝諸位指教,的確是不常用~ @@
10/06 13:10, 4F

10/06 18:07, , 5F
PTT有Regular Expreesion的版~版名是RegExp
10/06 18:07, 5F

10/07 00:28, , 6F
謝謝樓上 ^^"
10/07 00:28, 6F

10/07 21:11, , 7F
Regular Expression是值得投資學習的好工具哦。建議你…
10/07 21:11, 7F

10/07 21:12, , 8F
若有現成的工具不用,就像有內建函數不呼叫,反而自己另外
10/07 21:12, 8F

10/07 21:13, , 9F
再寫,通常沒有人會走這條路。
10/07 21:13, 9F

10/07 21:47, , 10F
Regular Expression 真的是個神奇的東西....
10/07 21:47, 10F
文章代碼(AID): #1CfjAa4U (C_Sharp)
文章代碼(AID): #1CfjAa4U (C_Sharp)