2010-03-12 80 views
4

我是新來的C#編程,我想問一個問題。在C中提取子字符串#

如何獲取()中的值並將其存儲在另一個字符串中。例如:
我有串

s1="here there (hi)"; 

我怎樣才能得到

s2="hi"; 

()永遠是在句子(從來沒有在第一或之間)結束。

+0

你可以取消匹配 '(' 喜歡「這是harde(R比(不匹配 '(') – 2010-03-12 11:07:48

回答

8
string s1 = "abc (hi)"; 
string s2 = s1.Substring(s1.LastIndexOf("(") + 1, s1.LastIndexOf(")") - s1.LastIndexOf("(") - 1); 
+0

尼斯一個,真的! – Kangkan 2010-03-12 11:02:25

+2

記住這將如果拋出異常源字符串不包含括號 – fretje 2010-03-12 11:04:23

+0

此實現拋出一個ArgumentOutOfRangeException;子字符串的第二個參數應該是一個長度,而不是一個字符索引。 – 2010-03-12 12:07:20

2
string s2 = s1.Substring(s1.LastIndexOf("(") + 1, s1.LastIndexOf(")") - s1.LastIndexOf("(") - 1); 
2
string e1 = "here there (hi)"; 
//Extraction 
string s2 = e1.Substring(e1.IndexOf("(")+1, (e1.LastIndexOf(")") - e1.IndexOf("("))-1); 
+0

以上所有答案都是錯誤的他們會在括號內顯示該單詞...................... – perilbrain 2010-03-12 11:17:10