日本語プログラミング言語「なでしこ」 > 戻る

正規表現について

 Perl互換の正規表現について。正規表現機能は、BREGEXP.DLLを利用しています。
■正規表現
  ┣基本的なマッチ
  ┣カッコ(...)を使ったマッチ
■正規表現のメタ文字
  ┣パターン・メタ文字
  ┣修飾子
  ┣正規表現置換

正規表現

正規表現についての詳しい解説は、WEBを参照してください。多くの優れた解説サイトがあります。

基本的なマッチ

『正規表現マッチ』命令を使って正規表現によるマッチが行えます。

「abc:def:ghi」「[a-z]+」で正規表現マッチ
表示 # abc

「2005:10:15」「\d+:\d+:\d+」で正規表現マッチ
表示 # 2005:10:15

カッコ(...)を使ったマッチ

カッコ(...)を使うと、カッコの中を抽出して変数『抽出文字列』に代入できます。

「abc:def:ghi」「(.+)\:(.+)\:(.+)」で正規表現マッチ
表示。#abc:def:ghi
抽出文字列[0]を表示 # abc
抽出文字列[1]を表示 # def
抽出文字列[2]を表示 # ghi

正規表現のメタ文字

パターン・メタ文字

         \     次のメタ文字をクォートする(取り消す)
         ^     行の最初にマッチする
         .     (改行以外の) すべての文字にマッチする
         $     行の終わりにマッチする
         |     選択
         ()    グループ化
         []    文字クラス

         \w   単語」の構成文字 (英数字と "_") にマッチ
         \W    単語の構成文字以外にマッチ
         \s    空白文字にマッチ
         \S    空白文字以外にマッチ
         \d    数字にマッチ
         \D    数字以外にマッチ
         \b    単語の境界にマッチ
         \B    単語の境界以外にマッチ
         \A    文字列の最初にのみマッチ
         \Z    文字列の最後にのみマッチ
         \t    タブ
         \n    改行
         \r    復帰
         \f    改ページ
         \a    アラーム (ベル)
         \e    エスケープ
         \033  8 進数で表した文字
         \x1b  16 進数で表した文字
         \c[   コントロール文字
直前の文字の数量子:
         *      0 回以上にマッチ
         +      1 回以上にマッチ
         ?      1 回または 0 回にマッチ
         {n}    ちょうど n 回にマッチ
         {n,}   n 回以上にマッチ
         {n,m}  n 回以上 m 回以下にマッチ

修飾子

また、Perlを知っている方は以下のように修飾子をつけて記述することもできます。

「abc:def:ghi」「m/[a-z]+/g」で正規表現マッチ
表示 # abc

修飾子は、つぎのようなものです。

k   文字を日本語(SJIS)として扱う(Perlにはこの修飾子はありません)
m   文字列を複数行として扱う(メタ文字$の処理結果に影響を及ぼします)
g   置換:グローバルな置換
c   変換:SEARCHLIST を補集合にする
d   変換:見つかったが置換されなかった文字を削除する
s   変換:置換された文字が重なったときに圧縮する

正規表現置換

以下の書式で置換を指定します。

『(対象文字列)の(パターン)を(置換後文字列)へ正規表現置換』

「A-B--C---D」「\-+」「:」へ正規表現置換
それを表示。#A:B:C:D

「2005/11/03」「(\d+)/(\d+)/(\d+)」「$2月$3日」へ正規表現置換
それを表示。# 11月03日



→トップへ →目次へ