- ベストアンサー
正規表現で
例えば 1234# 2345$ 2467# 2579$ 等の4桁の数値の後、#か$がくる文字列があるとして この数値の部分だけを抜き出す正規表現って可能でしょうか? 記号を含めていいなら [\d]{4}[#|\$] な感じになると思うのですが 数値のみ、1234,2345,2467,2579といった感じで選択したいのです。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>正規表現についてはほとんど知らないのですが perlとboostでは表記方法が異なるということなの でしょうか? 正規表現でも、詳細の部分については、各言語毎に 方言があります。 ちなみに、perlの場合は if (/([\d]{4})[#|\$]/){ print(":data=",$1,"\n"); } のようなコードになります。 これは、[\d]{4}を括弧で括っていますが、 正規表現のなかで、最初にくくった括弧を$1でperlは 表現します。(同様に2番目の括弧は$2です) 従って、perlの場合はマッチした文字列中で、取り出し たいところを括弧で括り、マッチ後に$1,$2などで参照します。 この方法がboostで可能かどうかは私は判りません。 boostに詳しいかたの回答をまつか、上記のやりかたが boostでも出来るかどうか調べてみて下さい。
その他の回答 (1)
- tatsu99
- ベストアンサー率52% (391/751)
perl限定ということであれば、(私は)回答可能ですが、 言語(若しくはツール)はなにを想定されていますでしょうか?
お礼
早速のご回答ありがとうございます。 具体的には VisualC++2003で http://www.boost.org/のREGEXの使用を考えております。 >perl限定ということであれば、回答可能ですが、 正規表現についてはほとんど知らないのですが perlとboostでは表記方法が異なるということなの でしょうか?
お礼
ご回答ありがとうございます。 非常に参考になりました。 boostにおいても、perlと同じく括弧毎に選択できるようです。