正規表現入門
ハロー ! メタキャラクタ
カテゴリー:メタ文字の概要
はじめに
ここからはメタキャラクタについての話が中心になります。
今までは、パターンの指定を通常の文字だけで記述してきました。(注:文字には、数字などの表意文字までをも含めた、広義の意味での文字をその前提としています。)
しかし、パターンの表記には通常の文字の他に、メタキャラクタと言われるな特殊な意味を持つ文字を使うことができます。
メタキャラクタ(Metacharacter)についてですが、唐突に個別の意味を説明するのではなく、まずは大まかに分類してみましょう。
例えば以下のような、マッチの対象となる文字列があったとします。
apple
見ての通り文字列は、 a と p と p それから l と e の文字で構成されています。
各々文字に対する作用の仕方により、メタキャラクタを区分けしていきます。
繰り返し
直ぐ目に留まるのが p という文字が2個あるという事です。
それ故、apple の ppという箇所は、文字列パターン "p" の2回の繰り返しにマッチします。
このような繰り返し構造をその対象としているメタキャラクタが、
範囲を広げて
さて今度は、a や p といった文字そのものについて着眼してみましょう。
a や p という文字は、当然ながらアルファベットの一部です。
そこでパターンの構築を、 "p" という単一な文字ではなく、範囲を広げてアルファベットという集合で構成するとします。
その集合の中から1文字分を取り出すと考えれば、a にも p にも l も e でも全てマッチします。
パターンをアルファベットとするならば、それの5回の繰り返しになるというわけです。
このようにパターンに範囲を持たせて集合にした場合に、それを規定するのが 文字クラス というメタキャラクタです。
位置
さらに見方を変えてみます。
文字そのものではなく、位置に注目します。
すると、a が 最初 にあり 最後が e になっています。
最初・最後 のような位置に対応しているメタキャラクタが、言明(アサーション) です。
位置については、最初 や 最後 のようなものだけでなく、特定の文字の 前 や 後 なども考える事が出来ます。
例えば、今一度 p という文字に注視してみます。
2つ並んだ p につき違いを考えてみます。
すると、2番目の p は一つ前の文字が a であるが、3番目の p はそうではない。
3番目の p は後ろの文字が l であるが、2番目はそうではない。
というように、特定の文字の前後関係に着眼すれば、2つの p の相違を捉える事ができます。
これは、言明(アサーション)の中でも 先読み や 後読み と言われているメタキャラクタになります。
その他
その他として、グループ機能などを定めているメタキャラクタもあります。
これでメタキャラクタにつき、大凡のイメージをもてました。
次回からは、メタキャラクタの詳細を解説していきます。
関連記事
\ エスケープ文字の働き
正規表現: | メタキャラクタの概要 |
難度 : | 入門〜基礎 |
事前知識: | Pythonの基礎文法 |
学習効果: | エスケープ文字の働きを理解できる。 |
[ ] 文字集合を指定する
正規表現: | 文字クラス |
難度 : | 基礎 |
事前知識: | Pythonの基礎文法(reモジュールを含む) |
学習効果: | 文字クラスを細部まで理解できる。 |
正規表現をPythonから使うには ?
正規表現: | Pythonから使う |
難度 : | 入門 |
事前知識: | Pythonの基礎文法 |
学習効果: | pythonから正規表現を使う一連の流れを掴む |
正規表現とは?
正規表現: | 概要 |
難度 : | 入門 |
事前知識: | 不要 |
学習効果: | 正規表現の概要を知る |
PR