• ベストアンサー

正規表現で

例えば 1234# 2345$ 2467# 2579$ 等の4桁の数値の後、#か$がくる文字列があるとして この数値の部分だけを抜き出す正規表現って可能でしょうか? 記号を含めていいなら [\d]{4}[#|\$] な感じになると思うのですが 数値のみ、1234,2345,2467,2579といった感じで選択したいのです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

>正規表現についてはほとんど知らないのですが perlとboostでは表記方法が異なるということなの でしょうか? 正規表現でも、詳細の部分については、各言語毎に 方言があります。 ちなみに、perlの場合は if (/([\d]{4})[#|\$]/){   print(":data=",$1,"\n"); } のようなコードになります。 これは、[\d]{4}を括弧で括っていますが、 正規表現のなかで、最初にくくった括弧を$1でperlは 表現します。(同様に2番目の括弧は$2です) 従って、perlの場合はマッチした文字列中で、取り出し たいところを括弧で括り、マッチ後に$1,$2などで参照します。 この方法がboostで可能かどうかは私は判りません。 boostに詳しいかたの回答をまつか、上記のやりかたが boostでも出来るかどうか調べてみて下さい。

sha-girl
質問者

お礼

ご回答ありがとうございます。 非常に参考になりました。 boostにおいても、perlと同じく括弧毎に選択できるようです。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

perl限定ということであれば、(私は)回答可能ですが、 言語(若しくはツール)はなにを想定されていますでしょうか?

sha-girl
質問者

お礼

早速のご回答ありがとうございます。 具体的には VisualC++2003で http://www.boost.org/のREGEXの使用を考えております。 >perl限定ということであれば、回答可能ですが、 正規表現についてはほとんど知らないのですが perlとboostでは表記方法が異なるということなの でしょうか?

関連するQ&A

専門家に質問してみよう