正規表現の使用
GOFR では、2 つの方法でパターン マッチングを行えます。ワイルドカード (Microsoft Office で使用されているものと同じ) または正規表現です。
ワイルドカードは単純ですが、機能は限定的です。GOFR では正規表現の使用をお勧めします。内部的には、GOFR はワイルドカードを正規表現に変換しています。
GOFR で正規表現を使用するには、複数パラメーターの入力ページで、検索する文字列または置換後の文字列のテキスト ボックスの横にあるオプション メニュー (OPT) をクリックし、“正規表現” を選択します。テキスト入力ボックスの色が緑色に変わります。
正規表現を使用すると、検索パターンに基づいて結果を変換できます。たとえば、<名> <姓> のパターンを <姓> <名> に変換したり、数値の書式を修正したりできます。下のリンクもぜひご覧ください。
変換については、ヘルプ ファイルも用意しています。“ワイルドカードと正規表現によるテキストの変換”
正規表現について理解するためのリソースは、オンラインに数多くあります。GOFR では .NET の正規表現を使用しています。Microsoft のページは非常に網羅的で、お勧めです。
https://learn.microsoft.com/dotnet/standard/base-types/regular-expression-language-quick-reference
基本をまとめた表を次に示します。
| メタ文字 | 動作 | 例 |
|---|---|---|
* |
直前の文字または部分式の 0 回以上の繰り返しに一致します。{0,} と同じです。 |
zo* は "z" と "zoo" に一致します。 |
+ |
直前の文字または部分式の 1 回以上の繰り返しに一致します。{1,} と同じです。 |
zo+ は "zo" と "zoo" に一致しますが、"z" には一致しません。 |
? |
直前の文字または部分式の 0 回または 1 回の繰り返しに一致します。{0,1} と同じです。? が他の量指定子 (*、+、?、{n}、{n,}、{n,m}) の直後にある場合、一致パターンは最短一致 (非貪欲) になります。最短一致のパターンは、検索対象の文字列のできるだけ短い部分に一致します。既定の最長一致 (貪欲) のパターンは、検索対象の文字列のできるだけ長い部分に一致します。 |
zo? は "z" と "zo" に一致しますが、"zoo" には一致しません。o+? は "oooo" の中の 1 つの "o" に一致し、o+ はすべての "o" に一致します。do(es)? は "do" または "does" の中の "do" に一致します。 |
^ |
検索対象の文字列の先頭の位置に一致します。複数行オプション (?m) をパターンの先頭に置くと、^ は \n の次の位置にも一致します。かっこ式の先頭の文字として使用すると、 ^ は文字セットを否定します。 |
^\d{3} は、検索対象の文字列の先頭にある 3 桁の数字に一致します。[^abc] は、a、b、c 以外の任意の文字に一致します。 |
$ |
検索対象の文字列の末尾の位置に一致します。複数行オプション (?m) をパターンの先頭に置くと、$ は \n の前の位置にも一致します。 |
\d{3}$ は、検索対象の文字列の末尾にある 3 桁の数字に一致します。 |
. |
改行文字 \n 以外の任意の 1 文字に一致します。\n を含む任意の文字に一致させるには、[\s\S] のようなパターンを使用します。 |
a.c は "abc"、"a1c"、"a-c" に一致します。 |
[] |
かっこ式の開始と終了を示します。 | [1-4] は "1"、"2"、"3"、"4" のいずれかに一致します。[^aAeEiIoOuU] は母音以外の任意の文字に一致します。 |
{} |
量指定子の式の開始と終了を示します。 | a{2,3} は "aa" と "aaa" に一致します。 |
() |
部分式の開始と終了を示します。部分式は、後で使用するために保存できます。 | A(\d) は "A0" から "A9" に一致します。数字は後で使用するために保存されます (置換後の文字列では $1)。 |
| |
2 つ以上の項目から選択することを示します。 | z|food は "z" または "food" に一致します。(z|f)ood は "zood" または "food" に一致します。 |
\ |
次の文字を、特殊文字、リテラル、前方参照、または 8 進数エスケープとして扱うことを示します。 | \n は改行文字に一致します。\( は "(" に一致します。\\ は "\" に一致します。 |