J.フリードルの本、Regular Expressionsには、ここで引用したい美しいタブレットがあります。
正規表現は、任意のテキストを検索および置換するための幅広い可能性を開きます。
正規表現を使用
すると、テキストドキュメントを柔軟かつ簡単に処理できます。
正規表現の最も簡単なアプリケーションの1つは、テキストの検索です-多くのテキストエディターは、
正規表現パターンで検索する機能を提供します
。 ^および$ -残りの正規表現をそれぞれ行の先頭と末尾に「バインド」します。 たとえば、 ^catは行「cat」と「caterpillar」に一致し、 dog$は行「bulldog」と「hotdog」に一致します。[…] - 文字クラス 。テキストのこの位置にある可能性のある文字をリストできます。 たとえば、 gr[ea]yは、「gray」行と「gray」行に一致します。[^…] - 文字クラスを除外すると、テキストのこの位置に配置できない文字をリストできます。 たとえば、 g[^ae]rdyは、行 "gardy"および "gerdy"とは一致しませんが、行 "gurdy"、 "g3rdy"および "girdy"とは一致します。(…|…) - 選択の設計 、いくつかのオプションの選択。 選択コンストラクトの各部分は、本格的な正規表現であることに注意してください。 たとえば、 Jeff(re|er)yは、「Jeffrey」と「Jeffery」の行に一致します。\<および\> - メタ - シーケンスは^および$に類似していますが、単語のレベルです。 たとえば、 \<cat\>は、単語catに一致します。
キャラクター内でサポートされているメタキャラクターの構成(およびその解釈)を決定するルールと、キャラクタークラスを除くルールはまったく異なることに注意してください。
| 通常のメタキャラクター |
|---|
| 記号 | 役職 | 解釈 |
|---|
| 単一文字要素 |
. | ポイント | 任意の1文字 |
[…] | キャラクタークラス | リストされた文字のいずれか |
[^…] | 反転文字クラス | クラスにリストされていない文字 |
\ | シールド | 接頭辞「\」が文字の前にある場合、文字は対応するリテラルとして解釈されます |
| 量指定子 |
? | 疑問符 | 許可されている単一インスタンス (必要なし) |
* | アスタリスク | 許可されたコピーの数 (必要なし) |
+ | プラス | 1つのインスタンスが必要です 許可されたコピーの数 |
{min, max} | 間隔数量詞* | 「最小」のコピーが必要で、「最大」の結果が許可されます |
| 定位置メタキャラクター |
^ | カバー曲折 | 行頭の位置 |
$ | ドル | 行末に位置する |
\< | 単語の境界* | 単語の先頭の位置 |
\> | 単語の境界* | 単語の末尾の位置 |
| その他のメタキャラクター |
| | 選択の設計 | 上記の式のいずれか |
(…) | かっこ | 選択構造の制約、数量詞を適用するためのグループ化、およびバックリンクのテキストの保存 |
\1, \2, … | トラックバック | 以前に1番目、2番目などと一致したテキスト 括弧のペア |
*これらの機能は、egrepのすべてのバージョンでサポートされているわけではありません