【问题标题】:Using C# FileStream as input to Regex.Match method使用 C# FileStream 作为 Regex.Match 方法的输入
【发布时间】:2017-01-08 15:03:01
【问题描述】:

我正在尝试在 Windows 10 上的 Visual Studio 中使用 C# 编写程序,并发现 Regex.Matches 方法需要两个字符串,一个用于输入,另一个用于正则表达式字符串。我的输入是FileStream,这似乎不会转换为string。它是一个类似数组的结构。

如何在文件流上使用正则表达式?我做了一些搜索,但没有得出任何结论。

【问题讨论】:

  • 正则表达式不喜欢无穷无尽的数据。
  • 你能读取文件的全部内容并与之匹配吗?

标签: c# regex filestream


【解决方案1】:

正则表达式旨在匹配文本模式,而不是二进制模式。你的文件是文本文件吗?如果是这样,请使用 File.ReadAllText() 而不是 FileStream。如果没有,您需要解释您的数据以及您正在尝试做什么,以便我们提供更好的解决方案。

【讨论】:

  • 不幸的是它不是一个十六进制文件;我无法发布它,因为它包含敏感数据;是否有任何形式的正则表达式可以对十六进制文件流进行操作?
  • @Myron:不。正则表达式专门设计用于对文本进行操作。 (但也没有 hex 文件 之类的东西。文件是文本或二进制文件。请编辑您的问题并明确您要问的内容以及您正在阅读的文件类型。)
  • @MyronGoldman 我们需要知道文件的实际格式...发布其中不包含敏感数据的一小部分。如果你的意思是它的二进制文件,那么你确定你不想反序列化它吗?
  • 我真的无法发布任何内容;但是它肯定不是文本文件,因此它必须是二进制文件。我正在查看以下内容:msdn.microsoft.com/en-us/library/b85344hz(v=vs.110).aspx
猜你喜欢
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
相关资源
最近更新 更多