看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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
TroyLee:有好工具 Regular Expression 不用自己煉鋼實在不會比較快 10/03 11:52
TroyLee:原po的問題是出在不熟悉RegExp的使用吧... 10/03 11:53
FF16:是這樣沒錯..... 10/03 15:49
QuestionTwo:感謝諸位指教,的確是不常用~ @@ 10/06 13:10
andymai:PTT有Regular Expreesion的版~版名是RegExp 10/06 18:07
FF16:謝謝樓上 ^^" 10/07 00:28
fcouple:Regular Expression是值得投資學習的好工具哦。建議你… 10/07 21:11
fcouple:若有現成的工具不用,就像有內建函數不呼叫,反而自己另外 10/07 21:12
fcouple:再寫,通常沒有人會走這條路。 10/07 21:13
james732:Regular Expression 真的是個神奇的東西.... 10/07 21:47