フリープログラミング for windows.

Boost.Regexを使ってみる(1)

今回はMinGW環境下でBoost.Regexを使ってみます。 Boost.Regexはテンプレートだけではなく、ライブラリを必要としますのでリンクでregexのライブラリをリンクする必要があります。

正規表現の利用

regex_search

regex_search は入力テキストに正規表現に一致するものが含まれている場合に、結果が真になります。 また、regex_matchとは異なり全ての一致を探します。

基本的な使用例を記述します。

以下のコードは、文字列 "Free <em>Programming</em> For Windows." に対して、正規表現 "<[^>]+>" が一致するか検査しています。

string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");

if (boost::regex_search(str, reg)) {
	cout << "===> Matched." << endl;
} else {
	cout << "===> Not matched." << endl;
}

結果は真となり、以下のように表示されるはずです。

===> Matched.

次の例は、一致した文字をすべて取得し表示します。

string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
	cout << result.str(0) << endl;
	start = result[0].second;
}

結果は以下のように表示されます。

<em>
</em>

以下は同時に()でグルーピングした値を取得しています。

string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<([^>]+)>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
	cout << result.str(0) << endl;
	cout << result.str(1) << endl;
	start = result[0].second;
}

結果は以下のように表示されます。

<em>
em
</em>
/em

regex_replace

regex_replace は正規表現に一致するものを置換します。

基本的な使用例を記述します。

以下のコードは、文字列 "Free Programming For Windows." に対して、正規表現 "P\w+" に一致するものを"Software"に置換します。

string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "Software");
cout << str2 << endl;

結果は、以下のように表示されます。

Free Software For Windows.

置換文字列には$0等でマッチした値を使用することができます。

string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "<em>$0</em>");
cout << str2 << endl;

結果は、以下のように表示されます。

Free <em>Programming</em> For Windows.

 

 

1. Boostのインストール
2. Boost.Regexを使ってみる(1)
3. Boost.Regexを使ってみる(2)

ソフトウエア製品

やっぱり、製品版でないとなにかと不自由な面も多いのは確かです。Windowsプログラミングするなら...

■ Visual Studio 2008

検出率、アップデート頻度、軽さ等、好評のセキュリティソフト...

■ カスペルスキー

格安レンタルサーバ

月額1000円以下で利用できるレンタルサーバです。

■ ロリポップ!
■ チカッパ!
■ さくらインターネット
■ TOK2 PROFESSIONAL
■ Bfit.jp

ネットバンク

金利の高さと、手数料の安さからネットバンクはたいへんお得です。

■ ジャパンネット銀行
■ イーバンク銀行

アフィリエイト

ブログ、ホームページを持っているなら、アフィリエイトで広告収入を得られます。

■ A8.net
■ リンクシェア
■ JANet

パソコン・周辺機器

インターネットだけのサービスやアウトレット、思わぬ掘り出し物があるので、こまめにチェックしたいものです。

メーカ直販系
□ パソコン本体
■ デルオンラインストア
■ エプソンダイレクト
■ ソニースタイル
■ Apple Store
■ 富士通直販サイト WEB MART
■ NEC「得選街」
■ レノボ・ジャパン株式会社
■ マウスコンピューター
□ 周辺機器
■ ioPLAZA
ショップ系
■ ジョーシン
■ パソコン専門店PCDEPOT WEB本店


Apple Store(Japan)
Copyright(C) 2005 freepg-lab. All rights reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送