boostの正規表現ライブラリを使う

boostの正規表現ライブラリ boost::regex を使ったサンプルです。
boost::regex は以下のコマンドでインストールすることができます。

$ sudo aptitude install libboost-regex-dev

サンプル regextest.cpp を準備します。これは正規表現リプレイサです。

</p>

<h1>include &lt;iostream&gt;</h1>

<h1>include &lt;string&gt;</h1>

<h1>include &lt;boost/regex.hpp&gt;</h1>

<p>// usage: a.out pattern replace-to</p>

<p>using namespace std;</p>

<p>int main(int c, char** v)
{
  if (c != 3) return 1;</p>

<p>boost::regex ex(v[1]); // 正規表現オブジェクト
  char buf[256];         // 読み取り用のバッファ</p>

<p>while (cin.getline(buf, sizeof(buf)))
    cout &lt;&lt; boost::regex_replace(string(buf), ex, v[2]) &lt;&lt; endl;</p>

<p>return 0;
}

ビルドします。

$ g++ -lboost_regex regextest.cpp

実行します。

</p>

<h1>先頭の二文字を入れ替える</h1>

<p>$ ls / | ./a.out '^(.)(.)' '$2$1'
ibn
obot
edv
tec
ohme
niitrd.img
ilb
olst+found
nmt
pot
rpoc
orot
bsin
eslinux
rsv
yss
mtp
sur
avr
mvlinuz

簡単ですね。

投稿者:

dyama

佐世保のシステムエンジニアです。詳しいプロフィールやこのブログについてはこちらをご覧ください。

「boostの正規表現ライブラリを使う」への3件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください