Java I/Oストリームに正規表現を適用する例を示します。この正規表現は、ストリームを文字列に変換するだけではなく、バイナリデータを保存します。インターネット上のほとんどの例は、テキストデータに焦点を当てています。Java I/Oストリームへの正規表現の適用
答えて
ストリームをバイト配列に変換します。
これは入力をロードできるかどうかを意味するそのサイズとローディングに必要な時間の両方の条件でメモリに保存してください!つまり、信頼できるプログラムを作成するためにストリームが提供するデータの長さを知る必要があります。ストリームの入力長を知ることは、潜在的に無限のデータを提供するという目的と矛盾します! –
正規表現操作は、バイナリデータのエンコードされたバイトである文字列に対して実行する必要があります。何バイトのデータで正規表現演算を実行することはできませんが、それらの表現は分かりません。
-1私は同意しません。バイナリデータに正規表現を適用できない理由はありません。バイナリデータは、それらの表現が分からないという意味ではありません。 –
おそらく、あなたは0と1のストリームを取り、正規表現を実行することができます。しかし、既存のJava APIのどれもが、より意味のある何かに変換せずに、その生のストリームにアクセスすることはできません。 –
+1が合意、バイナリデータにregexpを適用することは意味がありません。正規表現は基本的にStringsに対応しています。文字列を使用して定義されているため、明示的または暗黙的に文字列エンコーディングを使用します。 –
Java Standardに必要な機能がありません。 jakarta regexp、具体的にはStreamCharacterIteratorクラスを使用する必要があります。このクラスは、正規表現演算で使用するためにInputStreamをカプセル化します。
あなたは、標準の正規表現のパッケージを使用したい場合は、私が代わりにCharacterIteratorのCharSequenceを実装することで契約を締結し、前のクラスhereからソースを取得し、変更を示唆しています。
CharSequenceを実装する際の1つの問題は、インターフェイスがクラスに 'public int length()'を実装する必要があることです。あなたがストリームから読んでいるなら、あなたは長さを知らず、正規表現エンジンへの答えを返すことができません。 – monkeysplayingpingpong
Ragel - トランジションのコールバックを持つ正規表現ツールを使用してください。
ストリームとチャンクに適用できます。
- 1. 正規表現(正規表現)Java
- 2. 正規表現用の正規表現
- 3. java io - 正規表現が機能しない - なぜ
- 4. 正規表現(Java)
- 5. java正規表現
- 6. Java正規表現
- 7. Java正規表現
- 8. 正規表現Java
- 9. 正規表現(JAVA)
- 10. Java正規表現
- 11. 正規表現のJava
- 12. java正規表現のキャプチャグループ
- 13. Javaの正規表現
- 14. Javaの正規表現
- 15. Java正規表現のパターンマッチング
- 16. Javaの正規表現
- 17. のJava正規表現
- 18. Javaの正規表現パターン
- 19. のJava正規表現パターン
- 20. java htmlunitの正規表現
- 21. Java正規表現のヘルプ
- 22. Javaの逆正規表現
- 23. Javaの正規表現エンジンクラッシュ
- 24. のJavaスプリット()正規表現
- 25. Javaの正規表現
- 26. のJava正規表現
- 27. Javaルックアヘッドの正規表現
- 28. のJava正規表現パターン
- 29. のJava - 正規表現
- 30. Javaのパターンアノテーション用正規表現
あなたは何をお探しですか?正規表現と一致しないデータを拒否しますか?そして、あなたが文字列に興味がないなら、あなたはどうしたいですか?いくつかの明確化は良いでしょう –
明確化のために:文字への変換とバイナリデータへの変換は性能に影響するかもしれませんが、変換のために1バイトが失われることはありません。 – rwitzel
可能な複製[ストリーム上で正規表現を実行する](http://stackoverflow.com/questions/3013669/performing-regex-on-a-stream) –