G-SCE > 乗りれ ソフトページ > ひまわり > 正規表現 for ひまわらー 著者:tomo さん・発案(?):pooh さん
正規表現の基礎
 ひまわりで使える正規表現は、マッチ、区切る、置換、入れ換えがあるが、一番よく使うのは正規表現置換だと思うので、それについて説明する。

正規表現置換の基本形は"s#検索する文字列#置き換えたい文字列#kmg"である。
正規表現は検索する文字列の部分に使うことが出来る。
また、"#"の代わりに"/"を使うことも出来る。

簡単な正規表現

 任意の1文字を表す正規表現 "."
  ピリオドを一つ打つと、どんな文字にもマッチする正規表現になる。
  なお、ピリオドなどの特殊文字をまとめて'メタ文字'と言う。
  cf. 「123abcあいう」を、"s/./A/kmg"で、正規表現置換して、表示。

 任意の文字の連続を表す正規表現 "*"
  アスタリスクは、その直前に来た1文字が0文字以上連続している文字列とマッチする。".*"とすればどんな文字列にもマッチする。
  1文字以上の連続を表すには"..*"とするか、"+"を使う。"+"の使い方は"*"と同じ。
  cf. 「abbabbaaabb」を、"s/ba+/A/kmg"で、正規表現置換して、表示。

 任意の文字の1文字以下の連続を表す正規表現 "?"
  使い方は"*"と同じ。直前の一文字が0文字または1文字の文字列にマッチする。
  cf. 「a ab abb aab」を、"s/ab?/A/kmg"で、正規表現置換して、表示。

 特殊な文字を表す正規表現
  '数字'や'アルファベット'のように特殊なグループに存在している文字を表す正規表現。
  数字  :\d
  英数字 :\w (注:'_'にもマッチする
  空白文字:\s
  これらを使うときの注意として、'\'がひまわりの文字列中で展開されてしまうので実際に使うときは"\\d"と指定する必要がある。
  また、大文字にするとそれを除く文字にマッチする。

 任意のグループのうち一つを現す正規表現 "[]"
  文字列を"[]"でくくるとその中のどれか一文字とマッチする正規表現になる。
  また、"[]"で一つの正規表現とみなされるので、"+"などと併用することが出来る。
  cf. 「1abあ」を、"s/[\\da]/A/kmg"で、正規表現置換して、表示。
   「12aあac-a」を、"s/[\\dac]+/A/kmg"で、正規表現置換して、表示。

 後置参照・グループ化を行う正規表現 "()"
  任意の文字列を"()"でくくるとその中でマッチした文字列を後から参照できる。
  また、"[]"で一つの正規表現とみなされるので、"+"などと併用することが出来る。
  cf. 「aaa bbb ccc」を、"s/(a+) bbb (cc)c/'$1' `$2`/kmg"で、正規表現置換して、表示。

これだけあればたいていの文字列は扱えると思う。わからなくなったときはチャットにて。

2004/07/21コメント : チャットは停止中なので、ひまチャ!・ひまノート・
           ここのページの掲示板のいずれかで聞くといいかも。