正規表現
正規表現(「regex」とも呼ばれます)は、文字列内の1つ以上の文字に一致させるために使う検索パターンです。特定の文字、ワイルドカード、文字の範囲に一致させることができます。正規表現は、もともとviやgrepなどのUnixユーティリティで使われていました。しかし現在では、複数のプラットフォーム上にある多くのコード編集アプリケーションやワードプロセッサでサポートされています。正規表現は、主要なプログラミング言語のほとんどでも使用できます。
正規表現は、"app"のような単純な文字列だけでも構成できます。正規表現の"app"は、"apps"、"applications"、"inapplicable"という単語を含む文字列に一致します。正規表現には、行の先頭と末尾をそれぞれ指定するために使われるアンカー文字("^"と"$")を含めることもできます。そのため、正規表現の"^apps"は"apps are great,"という文字列には一致しますが、"I like apps."という文字列には一致しません。
正規表現には、すべての小文字など、文字の範囲に一致させるために使われるハイフンを含めることができます。たとえば、正規表現の"[a-z]"は"apps"には一致しますが、"Apps"や"123"という文字列には一致しません。正規表現の"[A-Za-z]"は"Apps"に一致し、"[0-9]"は"123"に一致します。正規表現で標準的なワイルドカード文字であるピリオドは、行末文字以外の任意の文字に一致させるために使えます。ピリオドの後にアスタリスク(.*)を付けると0個以上のインスタンスに一致し、プラス記号(.+)を付けると1個以上のインスタンスに一致します。
ハイフン、アスタリスク、プラス記号、またはアンカー文字を含む文字列に一致させる必要がある場合はどうすればよいでしょうか。これらの文字は、バックスラッシュ("\")で「エスケープ」することで、正規表現のパターンに含めることができます。たとえば、"$0.99"を検索する場合、正規表現は"\$0\.99"のようになります。バックスラッシュは、印刷できない文字を検索するためにも使われます。たとえば、"\r"は復帰を、"\n"は改行を、"\t"はタブ文字を表します。
基本的な正規表現を作成するのはそれほど難しくありませんが、高度な正規表現を書くのは簡単ではありません。優れたプログラマーでさえ、複雑な正規表現を最初から正しく書けることはほとんどありません。しかし、正しく使えば、正規表現は特定のテキストを検索、発見、置換するための強力なツールになります。
知識をテストする