Vous allez avoir besoin de mieux définir les règles qui régissent vos besoins correspondants. Lors de la création de tout type de code de correspondance ou de recherche, vous devez définir clairement les entrées que vous prévoyez et celles que vous devez produire. Il est très facile de produire du code buggé si vous ne prenez pas ces questions en considération. Cela dit ...
Vous devriez pouvoir utiliser des expressions régulières. L'imbrication peut le rendre un peu plus compliqué mais toujours réalisable (en fonction de ce que vous attendez dans les scénarios imbriqués). Quelque chose comme devrait vous aider à démarrer:
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);
Il devrait être trivial d'enrouler le code ci-dessus dans une fonction appropriée à vos besoins.
1 niveau de moyens d'emboîtement '[démarrer] xxx [démarrer] yyy [end] zzz [end]' est possible? – kennytm
C'est impossible. –
Si vous faites cela pour analyser HTML ou XML, il existe de meilleurs moyens ... – Randolpho