作者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
1F:推 TroyLee:有好工具 Regular Expression 不用自己炼钢实在不会比较快 10/03 11:52
2F:→ TroyLee:原po的问题是出在不熟悉RegExp的使用吧... 10/03 11:53
3F:→ FF16:是这样没错..... 10/03 15:49
4F:推 QuestionTwo:感谢诸位指教,的确是不常用~ @@ 10/06 13:10
5F:→ andymai:PTT有Regular Expreesion的版~版名是RegExp 10/06 18:07
6F:→ FF16:谢谢楼上 ^^" 10/07 00:28
7F:→ fcouple:Regular Expression是值得投资学习的好工具哦。建议你… 10/07 21:11
8F:→ fcouple:若有现成的工具不用,就像有内建函数不呼叫,反而自己另外 10/07 21:12
9F:→ fcouple:再写,通常没有人会走这条路。 10/07 21:13
10F:→ james732:Regular Expression 真的是个神奇的东西.... 10/07 21:47