простого решение, которое я могу думать:
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?
между English и (Язык).
Отличный инструмент для тестирования регулярных выражений - RegexPal, просто не забывайте избегать всего, когда переместите его на C#.
Here is a fiddle, testing the performance of all options.
Пожалуйста, сообщите, что именно вы пробовали и что пошло не так. Какое регулярное выражение вы пытались? Какой результат он дал? –