このサイトの詳細 |
はじめに |
正規表現クイックスタート |
正規表現チュートリアル |
置換文字列チュートリアル |
アプリケーションと言語 |
正規表現の例 |
正規表現リファレンス |
置換文字列リファレンス |
書籍レビュー |
印刷可能なPDF |
このサイトについて |
RSSフィードとブログ |
このチュートリアルでは、強力で時間を節約できる正規表現を作成するために必要なすべてを学ぶことができます。 最も基本的な概念から始まるので、正規表現について何も知らなくても、このチュートリアルを理解することができます。
チュートリアルはそこで終わりません。 正規表現エンジンが内部でどのように動作するかを説明し、その結果について警告します。 これにより、特定の正規表現が最初に期待したとおりに動作しない理由をすぐに理解することができます。 より複雑な正規表現を作成する必要がある場合、多くの推測や頭を悩ませる時間を節約できます。
基本的に、正規表現はある程度のテキストを記述するパターンです。 その名前は、それらが基づいている数学的理論に由来しています。 しかし、ここではそれを掘り下げるつもりはありません。 通常、名前は「regex」または「regexp」と略されます。 このチュートリアルでは、複数形の「regexes」の発音が容易であるため、「regex」を使用しています。 このウェブサイトでは、正規表現は次のように灰色で表示されますregex.
この最初の例は、実際には完全に有効な正規表現です。 これは最も基本的なパターンであり、単にリテラルテキストregexregexと一致します。 「一致」とは、正規表現処理ソフトウェアによってパターンが対応するものとして検出されたテキスト、バイト、または文字のシーケンスです。 一致はこのサイトでは青色で強調表示されます。
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\bはより複雑なパターンです。これは、一連の文字、数字、ドット、アンダースコア、パーセント記号、ハイフンに続いてアットマークが続き、さらに一連の文字、数字、ハイフンが続き、最後に単一のドットと2つ以上の文字が続くことを表しています。言い換えれば、このパターンはメールアドレスを表しています。これは、このサイトの正規表現に適用される構文の強調表示も示しています。単語境界と量指定子は青、文字クラスはオレンジ、エスケープされたリテラルは灰色です。チュートリアルの後半では、グループ化には緑、メタトークンには紫など、追加の色が表示されます。
上記の正規表現パターンを使用すると、テキストファイルからメールアドレスを検索したり、指定された文字列がメールアドレスのように見えるかどうかを確認したりできます。このチュートリアルでは、「文字列」という用語を使用して、正規表現が適用されるテキストを示します。このウェブサイトでは、それらを緑色で強調表示しています。「文字列」または「文字列」という用語は、プログラマーが文字のシーケンスを示すために使用します。実際には、使用しているアプリケーションまたはプログラミング言語を使用してアクセスできるデータであれば、正規表現を使用できます。
正規表現「エンジン」とは、正規表現を処理し、パターンを指定された文字列に一致させようとするソフトウェアです。通常、エンジンはより大きなアプリケーションの一部であり、エンジンに直接アクセスすることはありません。 むしろ、アプリケーションは必要に応じてエンジンを呼び出し、正しい正規表現が正しいファイルまたはデータに適用されるようにします。
ソフトウェアの世界ではよくあることですが、さまざまな正規表現エンジンは互いに完全に互換性があるわけではありません。 特定のエンジンの構文と動作は、正規表現フレーバーと呼ばれます。 このチュートリアルでは、Perl、PCRE、PHP、.NET、Java、JavaScript、XRegExp、VBScript、Python、Ruby、Delphi、R、Tcl、POSIX、およびその他多数など、一般的な正規表現フレーバーをすべて網羅しています。 チュートリアルでは、これらのフレーバーで異なる構文が必要な場合、または異なる動作を示す場合に警告が表示されます。 アプリケーションがチュートリアルで明示的に扱われていない場合でも、ほとんどのアプリケーションは上記のプログラミング環境または正規表現ライブラリのいずれかを使用して開発されているため、扱われている正規表現フレーバーを使用している可能性があります。
EditPad Proなど、正規表現をサポートするテキストエディターで、次のことを簡単に試すことができます。 そのようなエディターがない場合は、EditPad Proの無料評価版をダウンロードして試すことができます。 EditPad Proの正規表現エンジンは、デモ版で完全に機能します。
簡単なテストとして、このページのテキストをコピーしてEditPad Proに貼り付けます。 次に、メニューから[検索] | [複数行検索パネル]を選択します。 下部に表示される検索パネルの「検索テキスト」というラベルの付いたボックスに、regexregexと入力します。 「正規表現」チェックボックスをオンにして、「最初を検索」ボタンをクリックします。 これは、検索パネルの左端にあるボタンです。 EditPad Proの正規表現エンジンが最初の一致をどのように見つけるかを確認します。 「最初を検索」ボタンの横にある「次を検索」ボタンをクリックして、さらに一致を検索します。 一致するものがない場合、「次を検索」ボタンのアイコンが briefly点滅します。
次に、正規表現reg(ular expressions?|ex(p|es)?)を使用して検索してみてください。 この正規表現は、私がこのページで使用した「regex」を表すすべての名前(単数形と複数形)を見つけます。 プレーンテキスト検索のみを使用していた場合、5回の検索が必要でした。 正規表現を使用すると、1回の検索で済みます。 正規表現は、EditPad Proなどのツールを使用する際に時間を節約できます。 [検索]メニューの[一致の数をカウント]を選択して、この正規表現がEditPad Proで開いているファイルに何回一致できるかを確認します。
プログラマーであれば、上記の正規表現を1回適用するだけの単純な正規表現エンジンでも、最先端のプレーンテキスト検索アルゴリズムがデータを5回検索するよりもパフォーマンスが優れているため、ソフトウェアの実行速度が向上します。 正規表現は開発時間も短縮します。 正規表現エンジンを使用すると、たとえば、ユーザーの入力が有効なメールアドレスのように見えるかどうかを確認するために、1行(Perl、PHP、Python、Ruby、Java、または.NETなど)または数行(PCREを使用するCなど)のコードだけで済みます。
ページURL:https://regular-expressions.dokyumento.jp/tutorial.html
ページ最終更新日:2021年8月19日
サイト最終更新日:2024年3月15日
著作権©2003-2024 Jan Goyvaerts。 全著作権所有。