将正则表达式应用于Java I / O流

我寻找一个将正则表达式应用于Java I / O流的示例,该流不会简单地将流转换为字符串,因为我希望保留二进制数据。 互联网上的大多数例子都集中在文本数据上……

Java Standard不提供所需的function。 您将不得不使用jakarta regexp ,特别是StreamCharacterIterator类。 此类封装了一个用于regexp操作的InputStream。

如果你想使用标准的正则表达式包,我建议从这里的前一个类获取源代码,并通过实现CharSequence而不是CharacterIterator来更改契约。

将流转换为字节数组。

尝试使用Ragel – 具有转换回调的正则表达式工具。

可以应用于流和块。

必须对字符串执行正则表达式操作,字符串是二进制数据的编码字节。 您无法对不知道它们代表什么的数据字节执行正则表达式操作。