- 締切済み
binaryに対して正規表現を適用する方法
バイナリー配列 unsigned char buffer[BufferSize]のようなもにに対して正規表現による検索を行うにはどのようにすればよいでしょうか。正規表現には、非印刷文字も含まれます(例: \x01{5}.{10}\xFF)。宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
16進文字列に変換しちゃうのもテかもですね。
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
まず、正規表現ライブラリを用意するか、自作してください。 C標準の正規表現ライブラリというのはありません。 既存のライブラリを用意したのなら、そのマニュアルを熟読してください。 特に、マルチバイトの扱いと、入力文字列について。 マルチバイトに未対応だったり、設定変更できるものだと、複数バイトで1文字、とはならないので、おそらく、ご期待の方法が使えます。 入力がCの文字列に限定されていると、'\0'を含む入力からの検索ができません。
質問者
お礼
ありがとうございます。 私の用途では、文字コードはあまり関係がありませんが、参考とさせて頂きます。
お礼
なるほど。 シンプルで良い方法だと思います。 有難うございました。
補足
質問者(softwarelearner)です。 ただ、この方法だとAsicii文字が使えませんよね。 例えば、もとの正規表現が \x00(hello){3,5}\xFF なら 00(68656c6c6F){3,5}FF ですかね。ちょっと煩雑なので、なんとか元の表現が使える方法はないものでしょうか。