作者FF16 (好無聊)
看板C_Sharp
標題Re: [問題] 取出字串中括號內容
時間Sat Oct 2 14:35:13 2010
※ 引述《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