2016-08-31 12 views
1

Я пытаюсь написать программу с использованием C# в Visual Studio в Windows 10 и обнаружил, что метод Regex.Matches принимает две строки для ввода, а другую для строки регулярного выражения использовать. Мой ввод равен FileStream, и это, как представляется, не конвертируется в string. Это массив, похожий на структуру.Использование C# FileStream в качестве входного параметра для метода Regex.Match

Как использовать регулярные выражения в потоке файлов? Я сделал некоторые поиски, но не придумал ничего убедительного.

+2

Regexes не любят бесконечные данные. – stuartd

+0

Можете ли вы просто прочитать полное содержимое файла и сопоставить его с этим? –

ответ

0

Regex предназначен для сопоставления текстовых паттернов, а не двоичных паттернов. Является ли ваш файл текстовым файлом? Если это так, используйте File.ReadAllText() вместо FileStream. Если нет, вам нужно будет объяснить свои данные и то, что вы пытаетесь сделать, чтобы мы могли предложить лучшее решение.

+0

К сожалению, нет его шестнадцатеричного файла; Я не могу опубликовать его, поскольку он содержит конфиденциальные данные; существует ли какая-либо форма регулярного выражения, которая может работать с шестнадцатеричным файловым потоком? –

+0

@Myron: Нет. Регулярные выражения специально предназначены для работы с текстом. (Но также нет такой вещи, как * hex-файл *. Файлы являются текстовыми или двоичными. Пожалуйста, отредактируйте свой вопрос и дайте понять, что вы спрашиваете, и тип файла, который вы читаете.) –

+0

@MyronGoldman нам понадобится чтобы узнать, в каком формате находится файл на самом деле ... опубликуйте небольшую часть, которая не содержит конфиденциальных данных. Если вы имеете в виду его двоичный код, вы уверены, что не хотите его десериализовать? – SledgeHammer

Смежные вопросы