Mam bardzo dużą tablicę znaków, którą muszę przekonwertować na ciąg znaków w celu użycia Regex na jej podstawie.
Ale jest tak duży, że dostaję OutOfMemoryException
kiedy przekazuję to do konstruktora ciągów.Jak utworzyć ciąg znaków z tablicy znaków bez jej kopiowania?
wiem, że łańcuch jest niezmienne i dlatego nie powinny być możliwe określenie jego podstawowych zbiór znaków, ale muszę się sposób korzystania z wyrażeń regularnych, które bez kopiowania na całość.
Jak uzyskać tę tablicę?
- Otrzymuję go z pliku przy użyciu
StreamReader
. Znam pozycję początkową i długość treści do przeczytania,Read
iReadBlock
metody potrzebują mnie do dostarczenia buforachar[]
.
Więc tutaj są rzeczy, które chcę wiedzieć:
- Czy istnieje sposób, aby określić pod nią kolekcja ciąg jest? (Czy nawet zachowuje znaki w tablicy?)
- ... lub używając Regex bezpośrednio na tablicy znaków?
- ... lub uzyskanie części pliku bezpośrednio jako ciąg?
Co to jest wyrażenie regularne? Jeśli jest to dość proste, możesz zastąpić go kodem, który przejdzie przez "char []". –
Jak duży jest "char []"? –
@Matt: Niestety nie mogę. Jest to dość długi i złożony parser. –