ChIDE アイコン 正規表現
ホーム
日本語版ホーム
よくあるご質問
ドキュメント
言語

IDEにおける正規表現

目的

正規表現は、文字よりもむしろパターンの検索に使用されます。たとえば、 以下の正規表現付きの $(名前) のような、 IDEプロパティファイル内の変数の検索が可能です。
\$([a-z.]+)

正規表現を用いての置換により、タグ付き表現を用いた複雑な変換が可能になります。 たとえば、カンマ ',' で区切られた2つの数字の順序を入れ替える (例:「12,3」を「3,12」とする)には、
置き換えられる文字列に \([0-9]+\),\([0-9]+\) を、
置き換える文字列に \2,\1 を、
それぞれ指定します。

書式

  1. 以下の特殊文字以外の文字は、自分自身と合致します。 (メタキャラクタ): . \ [ ] * + ^ $
  2. . は、いかなる文字とも合致します。
  3. \ は、これに続く文字が左または右丸かっこ、1から9までの数字、 あるいは左または右角かっこである場合を除き([7]、[8]、[9]を参照)、 これに続く文字と合致します。 これは他のすべてのメタキャラクタ、およびそれ自身に対する エスケープ文字として使用されます。set ([4]) 内で使用される場合は、 これは通常の文字として扱われます。
  4. [set] は、「set」内の文字の1つと合致します。 set内の最初の文字が "^" である場合、set内に含まれない文字と合致します。 速記法の S-E は、SからEまでの文字のセットの指定に使用されます。 特殊文字 "]" と "-" は、set内の最初の文字として現れる場合には、特別な意味はありません。 例: [a-z] は任意の小文字のアルファベットと、 [^]-] は ] と - を除く任意の文字と、 [^A-Z] は大文字のアルファベットを除く任意の文字と、 [a-zA-Z] は任意のアルファベットと それぞれ合致します。 たとえば、[ab]は文字aまたはbのいずれか1文字に合致しますから、c[ab]dは 文字列cad又はcbdのいずれかには合致しますが、 cd、caad、cbbdあるいはcabdには合致しません。
  5. * : 閉鎖文字 (*) に続く [1] から [4] までの任意の正規表現 は、その形式のゼロまたはそれ以上の数の文字と合致します。 たとえば、a*は空白文字列、a、aa、aaa、aaaa等のいずれにも合致します。 なお、「任意の文字の0文字以上の連続文字列」を表すには普通、".*" を使います。
  6. + : 1またはそれ以上の数の文字と合致することを除き、[5] と同様です。 たとえば、a+はa、aa、aaa、aaaa等のいずれにも合致しますが空白文字列には 合致しません。「空白を除く任意の文字の1文字以上の連続文字列」を表すには [^ ]+を使用することができます。
  7. \(form\) のように囲まれた、[1] から [10] までの正規表現は、 formが合致するものと合致します。囲みの中身は、[8] および パターンの置換用にで使用される、一連のタグを生成します。 タグ付き形式は、1から始まる数字で番号が付けられています。 例については上記の「カンマで区切られた2つの数字の順序を入れ替える方法」 の「置き換えられる文字列」を参照してください。
  8. \ に1から9までの数字が続く表現は、直前のタグ付き正規表現 ([7]) が合致したものすべてに合致します。 例については上記の「カンマで区切られた2つの数字の順序を入れ替える方法」 の「置き換えられる文字列」を参照してください。
  9. "\<" と "\>" はそれぞれ単語の先頭と末尾とを意味します.「単語」は文字 A-Z a-z 0-9 および _ で始まり、「単語」の前または後にはここで説明されている以外の 任意の文字が配置されていなければなりません。たとえば、\ は "Windows 98"、 "Windows XP" あるいは "Windows 3.1" の "Windows" には合致しますが、"Windows2000" の "Windows" には合致しません。
  10. 合成正規表現 xy(ここでxとyは [1] から [10] の形式)は、 後にyの対が続く最長のxの対に合致します。
  11. ^ : ^ 文字で始まり、かつ/または $ 文字で終わる正規表現は、パターンマッチを行の先頭、 または行末に制限します。[anchors] パターンのほかの場所では、 ^ と $ は通常の文字として扱われます。 たとえば、^$は「行の最初から最後まで一つも文字が含まれていないこと」、 すなわち空行を表します。また、^.*$は「任意の文字が任意個含まれている行」、 すなわち任意の行を表します。

謝辞

このドキュメントの大部分は、元々Ozan S. Yigitにより記述されました。
追加の部分は、Neil Hodgsonにより記述されました。