我有一個帶括號的字符串,我希望僅提取括號內的字符串部分。基於多個分隔符參與字符串的一部分?
例如,從以下字符串:
"abc(def)ghi"
我想獲得"def"
,沒有括號。
我已經做了一些搜索,但到目前爲止,我已經找到了最接近的事是String.Split():
string s = "3,2,4,5,6";
string[] words = s.Split(',');
但String.Split只需要1個分隔在一個時間。有沒有更好的方法只抓住括號內的字符串?
我有一個帶括號的字符串,我希望僅提取括號內的字符串部分。基於多個分隔符參與字符串的一部分?
例如,從以下字符串:
"abc(def)ghi"
我想獲得"def"
,沒有括號。
我已經做了一些搜索,但到目前爲止,我已經找到了最接近的事是String.Split():
string s = "3,2,4,5,6";
string[] words = s.Split(',');
但String.Split只需要1個分隔在一個時間。有沒有更好的方法只抓住括號內的字符串?
正則表達式可以幫助這裏
string input = "abc(def)ghi";
var def = Regex.Match(input, @"\((.+?)\)").Groups[1].Value;
您可以在多個字符分割:s.Split("()".ToCharArray())
。不知道這對您是正確的解決方案,還是正則表達式。
你不需要將字符串轉換爲字符數組。你可以簡單地寫s.Split('(',')') – hendrik
你可以傳入一個字符數組來分割。
像這樣:
string s = "abc(def)ghi";
char[] chars = new char[] { '(', ')' };
string[] parts = s.Split(chars);
這會給'abc)def一個正確的結果嗎(ghi'? –
只要字符匹配char-如果您希望零件[0]爲「abc」,零件[1]爲「def」,零件[0]爲零,則無論它們以何種順序輸入(無論是在數組中還是在要拆分的字符串中) – ThoBa
。 2]是「ghi」,那麼 - 是的 - 它會 - 就像ThoBa所說的那樣 –
只是另一種選擇。操作簡單,雙分裂
string s = "abc(def)ghi";
string []first = s.Split('(');
string[] second = first[1].Split(')');
Console.WriteLine(second[0]);
Console.ReadLine();
您可以使用正則表達式像這裏http://stackoverflow.com/a/8526268/187697顯示 – keyboardP
只要你喜歡你可以添加儘可能多的分隔符的一個:s.Split('( ',')')應該適用於你的情況。 – hendrik