Я следующий вид строки наборов в текстовом файле:Regex помощь - соответствует любому числу символов
<< /ImageType 1
/Width 986 /Height 1
/BitsPerComponent 8
/Decode [0 1 0 1 0 1]
/ImageMatrix [986 0 0 -1 0 1]
/DataSource <
803fe0503824160d0784426150b864361d0f8844625138a4562d178c466351b8e4763d1f904864523924964d27944a6552b964b65d2f984c665339a4d66d379c4e6753b9e4f67d3fa05068543a25168d47a4526954ba648202
> /LZWDecode filter >> image } def
Есть 100s изображений, определенных как выше.
Мне нужно найти все такие изображения, определенные в документе.
Вот мой код -
string txtFile = @"text file path";
string fileContents = File.ReadAllText(txtFile);
string pattern = @"<< /ImageType 1.*(\n|\r|\r\n)*image } def"; //match any number of characters between `<< /ImageType 1` and `image } def`
MatchCollection matchCollection = Regex.Matches(fileContents, pattern, RegexOptions.Singleline);
int count = matchCollection.Count; // returns 1
Однако, я получаю только один матч - в то время как существует около 600 изображений, определенных.
Но кажется, что все они сопоставлены в одном из-за символа «новой строки», используемого в шаблоне.
Может кто-нибудь, пожалуйста, руководство, что мне нужно изменить правильный результат регулярных выражений матча в 600.