Hej. Mam prosty problem, na który nie znalazłem prostej odpowiedzi ;)
Jest sobie programik w C#, który będzie co jakiś czas dostawał nowe teksty (stringi). Programik ma zakodowane w p*du RegExpów 'definiujących' to, co te stringi mogą zawierać, powiedzmy 100 różnych regexpów. I teraz żeby ustalić, który z nich nasz string reprezentuje, trzeba by było za każdym razem wykonać 100 (ok, średnio 50) operacji przetwarzania tekstu wyrażeniem regularnym, co - obawiam się - może nie być najlepszym pomysłem.
Czy istnieje w C# jakaś struktura inteligentnie "grupująca" regexpy? Gdybyśmy np. porównywali string ze stringiem, można by było zbudować drzewo binarnych wyszukiwań, dzięki któremu znacząco zmniejszylibyśmy liczbę operacji. Tu jednak mamy nie zwykły string, a wyrażenie regularne, w dodatku utworzone też dynamicznie, na starcie programu... Da się to jakoś sprytnie zoptymalizować? ;)