С# Regex Split - все внутри квадратных скобок
В настоящее время я пытаюсь разбить строку на С# (последняя .NET и Visual Studio 2008), чтобы получить все, что находится внутри квадратных скобок, и отказаться от оставшегося текста.
Например: "Антагонист H1-рецептора [HSA: 3269] [PATH: hsa04080 (3269)]"
В этом случае я заинтересован в получении " HSA: 3269" и " PATH: hsa04080 (3269)" в массив строк.
Как это можно достичь?
Ответы
Ответ 1
Split
вам не поможет; вам нужно использовать регулярные выражения:
// using System.Text.RegularExpressions;
// pattern = any number of arbitrary characters between square brackets.
var pattern = @"\[(.*?)\]";
var query = "H1-receptor antagonist [HSA:3269] [PATH:hsa04080(3269)]";
var matches = Regex.Matches(query, pattern);
foreach (Match m in matches) {
Console.WriteLine(m.Groups[1]);
}
Получает результаты.
Ответ 2
Попробуйте это
string mystr = "Hello my name is {robert} and i live in {florida}";
List<string> myvariables = new List<string>();
while (mystr.Contains("{"))
{
myvariable.Add(mystr.Split('{', '}')[1]);
mystr = mystr.Replace("{" + mystr.Split('{', '}')[1] + "}", "");
};
Таким образом у меня будет массив, который будет содержать robert и florida.