• 締切済み

binaryに対して正規表現を適用する方法

バイナリー配列 unsigned char buffer[BufferSize]のようなもにに対して正規表現による検索を行うにはどのようにすればよいでしょうか。正規表現には、非印刷文字も含まれます(例: \x01{5}.{10}\xFF)。宜しくお願いします。

みんなの回答

回答No.2

16進文字列に変換しちゃうのもテかもですね。

softwarelearner
質問者

お礼

なるほど。 シンプルで良い方法だと思います。 有難うございました。

softwarelearner
質問者

補足

質問者(softwarelearner)です。 ただ、この方法だとAsicii文字が使えませんよね。 例えば、もとの正規表現が \x00(hello){3,5}\xFF なら 00(68656c6c6F){3,5}FF ですかね。ちょっと煩雑なので、なんとか元の表現が使える方法はないものでしょうか。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

まず、正規表現ライブラリを用意するか、自作してください。 C標準の正規表現ライブラリというのはありません。 既存のライブラリを用意したのなら、そのマニュアルを熟読してください。 特に、マルチバイトの扱いと、入力文字列について。 マルチバイトに未対応だったり、設定変更できるものだと、複数バイトで1文字、とはならないので、おそらく、ご期待の方法が使えます。 入力がCの文字列に限定されていると、'\0'を含む入力からの検索ができません。

softwarelearner
質問者

お礼

ありがとうございます。 私の用途では、文字コードはあまり関係がありませんが、参考とさせて頂きます。