Necesitará definir mejor las reglas que rigen sus necesidades de coincidencia. Al construir cualquier tipo de código coincidente o de búsqueda, debe tener una opinión clara sobre qué entradas anticipa y qué salidas necesita producir. Es muy fácil producir código defectuoso si no se tienen en cuenta estas cuestiones. Dicho esto ...
Debería poder usar expresiones regulares. El anidamiento puede hacerlo un poco más complicado pero aún factible (según lo que espere encontrar en escenarios anidados). Algo como debería comenzar:
var start = "[start]";
var end = "[end]";
var regEx = new Regex(String.Format("{0}(.*){1}", Regex.Escape(start), Regex.Escape(end)));
var source = "[start]aaaaaa[end] wwwww [start]cccccc[end]";
var matches = regEx.Match(source);
Debe ser trivial para ajustar el código anterior en una función adecuada a sus necesidades.
1 nivel de los medios de anidación '[Inicio] xxx [iniciar] yyy [final] zzz [final]' es posible? – kennytm
Es impossibe. –
Si está haciendo esto para analizar HTML o XML, hay formas mejores ... – Randolpho