C # Regex Split – todo dentro de corchetes

Actualmente estoy tratando de dividir una cadena en C # (última .NET y Visual Studio 2008), para recuperar todo lo que está entre corchetes y descartar el texto restante.

Ejemplo: “antagonista del receptor H1 [HSA: 3269] [RUTA: hsa04080 (3269)]”

En este caso, estoy interesado en obtener ” HSA: 3269 ” y ” RUTA: hsa04080 (3269) ” en una matriz de cadenas.

¿Cómo se puede lograr esto?

Split no te ayudará aquí; necesitas usar expresiones regulares:

 // 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]); } 

Produce sus resultados

Prueba esto

 string mystr = "Hello my name is {robert} and i live in {florida}"; List myvariables = new List(); while (mystr.Contains("{")) { myvariable.Add(mystr.Split('{', '}')[1]); mystr = mystr.Replace("{" + mystr.Split('{', '}')[1] + "}", ""); }; 

De esta manera tendré una matriz que contendrá robert y florida.