作者はじめに文字列処理は、ほとんどのアプリケーションが何度も実行するありふれた操作です。汎用アルゴリズムも文字列に使えるようになっています。いえ、固定の機能のセットがすべての欲求に答えるというわけにはいきません。テキストデータの種類も様々ですから、様々な柔軟性にとんだ解決策が必要なのです。置換のメカニズムと組み合わせることで、文字列処理の万能ナイフとなります。非常に有用なので、いくつもの言語が正規表現を言語組み込みの機能としてサポートしています。提供できる、というところが焦点です。実装でありながら、組み込み機能と同程度の読みやすさと使いやすさで提供しています。達成されているか、見ていきます。そのAPIを一番ストレートに活用する方法を知ることができます。読者が正規表現の各要素についてご存じであると想定していますが、APIについては知っている必要はありません。準備運動あるテキストが電話番号かどうかをチェックするにはどうすればいいでしょう?はい、まず何か数字が並んでいて、国コードがその前についているかもしれなくて......。オーケー、国際電話の書式に従った方が厳格でしょうか。writeln("電話番号っぽいです。writeln("ちがう、電話番号じゃない。ここで一言、正規表現には限界があることはよく覚えておいて下さい。真に電話番号としての有効性を確かめるには、実際に電話をかけてみるか関係機関に問い合わせなければいけません。使うと、正規表現パターンを自然な記法で書くことができます。関数は、あとで見るように他の目的にも使える万能ツールです。して調べれば良いです。エスケープをお忘れなく。たくさんの文字列処理を行うのでなければ、単なる素の文字列をパターンとして渡して構いません。実際の処理をするための内部表現はキャッシュされ、以降の呼び出しを高速化します。電話番号の例を続けましょう。電話番号全体だけでなく、国コードの部分を取り出すことができると便利です。いうこともやってみます。Regex!char));検索と置換テキストから、マッチする部分をすべて取り出したいということはよくあります。簡単な課題として、空白のみの行をすべて取り除く、という処理を考えてみましょう。いった特別なルーチンはありません。ループするという自然な使い方ができます。簡略記法}マッチの結果は入力レンジとして動作します。型で、部分マッチへのランダムアクセスレンジとなっています。データの列を表す基本的な方法とだけ理解しておいて下さい。ランダムアクセスというのは、全ての要素にインデックスで直接アクセスできるということです。それがどう関係してくるか、以下の例を見て下さい。他のモジュールと巧く連携することできます。空でない行があることがわかりました。それはともかく正規表現に戻りましょう。サポートされていることにお気づきでしょう。プロパティxxx、ここでは空白文字を持たないことを意味しています。