/ / Regex.Split todo entre corchetes [] - c #, regex, split

Regex.Split todo entre corchetes [] - c #, regex, split

Realmente soy un n00b cuando se trata de expresiones regulares. He estado tratando de dividir una cadena donde quiera que haya un [----anything inside-----] por ejemplo.

string s = "Hello Word my name_is [right now I"m hungry] Julian";
string[] words = Regex.Split( s, "------");

El resultado sería "Hello Word my name_is " y " Julian"

Respuestas

5 para la respuesta № 1

La expresión regular que desea utilizar es:

Regex.Split( s, "\[.*?\]" );

Los corchetes son caracteres especiales(especificando un grupo de caracteres), por lo que tienen que ser escapados con una barra invertida. Dentro de los corchetes, usted desea cualquier secuencia de caracteres EXCEPTO un corchete cerrado. Hay un par de maneras de manejar eso. Uno es especificar [^]]* (especificando explícitamente "no es un cuadrado cercanocorchete "). El otro, como utilicé en mi respuesta, es especificar que la coincidencia no es codiciosa colocando un signo de interrogación detrás de él. Esto le indica al procesador de expresiones regulares que no consuma con tanta avidez los caracteres como sea posible, sino que detente tan pronto como la siguiente expresión coincida.


1 para la respuesta № 2

@"[.*?]" coincidirá con los corchetes del texto


0 para la respuesta № 3

Otra forma de escribirlo:

Regex.Split(str, @"[[^]]*]");