我需要得到這括號如何獲得字符串數據是括號外的C#
string data = "English(Language)";
string result= "English";
結果之外顯示文本「英語」的數據。
我試着用正則表達式,但沒能得到期望的結果。
我需要得到這括號如何獲得字符串數據是括號外的C#
string data = "English(Language)";
string result= "English";
結果之外顯示文本「英語」的數據。
我試着用正則表達式,但沒能得到期望的結果。
最簡單的辦法:
string data = "English(Language)";
string result = data.Substring(0, data.IndexOf('('));
那是當然的,如果你從不需要括號內的數據。
另一種方式來做到這一點是通過使用String.Split
:
string data = "English(Language)";
string result = data.Split('(')[0];
這略微高於第一示例慢,因爲它需要爲一個數組分配內存。
第三種方式做到這一點是通過正規表達式:
string data = "English(Language)";
var pattern = new Regex("(\\w+\\s?)\\((\\w+)\\)", RegexOptions.Compiled);
string result = pattern.Match(data).Groups[1].Value;
這是最慢的所有例子,但同時捕捉「英語」和「語言」。它還允許空白\s?
英語和(語言)之間。
測試正則表達式一個偉大的工具爲RegexPal,只記得當你將它交給C#逃避一切。
Thnaks die maus – Pavan
XD或者只是:
string data = "English(Language)";
string result = data.Replace("(Language)", "");
嘗試:
string input = "English(Language)";
string regex = "(\\(.*\\))";
string output = Regex.Replace(input, regex, "");
你將需要: using System.Text.RegularExpressions;
如果你不用打擾使用正則表達式,下面的解決方案工作正常。
string data = "English(Language)";
string result = Regex.Match(data, @"(.*)\(.*\)").Groups[1].Value;
Console.WriteLine(result); // English
請分享您已經嘗試過的以及出了什麼問題。你試過什麼正則表達式?它給了什麼結果? –