正規表現における特殊文字の意味についての記事です。皆様のお役に立てれば幸いです。
キャラクター/
意味: 文字の場合、通常は文字通りの意味を意味し、説明のない次の文字が特殊文字であることを示します。
たとえば、/b/ は文字「b」に一致します。b の前にバックスラッシュを追加すると (/b/)、その文字は
を意味する特殊文字になります。
単語の境界を一致させます。
または:
複数の文字の場合、通常、指定は特殊であり、次の文字は特殊ではなく、文字通りに解釈する必要があることを示します。
例: * は特殊文字で、任意の数の文字 (0 文字を含む) に一致します。たとえば、/a*/ は 0 個以上の a に一致することを意味します。リテラル * と一致するには、a の前にバックスラッシュを付けます。たとえば、/a*/ は 'a*' と一致します。
キャラクター^
意味: 一致する文字が先頭になければならないことを示します。
たとえば、/^A/ は、「an A」の「A」には一致しませんが、「An A.」の最初の「A」には一致します。
キャラクター$
意味: ^ と同様に、最後の文字と一致します。
例: /t$/ は、「eater」の「t」とは一致しませんが、「eat」の「t」とは一致します。
キャラクター*
意味: * より前の文字と 0 回または n 回一致します。
例: /bo*/ は、「A ghost booooed」の「boooo」または「A Bird warbled」の「b」には一致しますが、「Agoat g
」には一致しません。
ランテッド」。
キャラクター+
意味: + 記号の前の文字を 1 回または n 回照合します。 {1,} と同等。
たとえば、/a+/ は、「candy」の「a」と「caaaaaandy」のすべての「a」に一致します。
キャラクター?
意味: ? の前の文字を 0 回または 1 回一致させます。
たとえば、/e?le?/ は、「angel」の「el」と「angle.」の「le」に一致します。
キャラクター
意味: (小数点) は、改行文字を除くすべての単一文字に一致します。
たとえば、/.n/ は、「いいえ、リンゴが木の上にあります」の「an」と「on」には一致しますが、「nay」には一致しません。
キャラクター(x)
意味: 「x」と一致し、一致した値を記録します。
例: /(foo)/ は、「foo bar」の「foo」と一致し、記録します。一致する部分文字列は、結果配列の要素 [1]、...、[n] によって返されます。
RegExp オブジェクトのプロパティ ... を返すか、プロパティによって返されます。
キャラクターx│y
意味: 「x」または「y」と一致します。
たとえば、/green│red/ は、「green apple」の「green」と「red apple」の「red」に一致します。
キャラクター {n}
意味: ここでの n は正の整数です。最初の n 文字と一致します。
たとえば、/a{ 2 }/ は、「candy」の「a」とは一致しませんが、「caandy」のすべての「a」と、「caaandy.」の最初の 2 つの「a」と一致します。
文字 { n, }
意味: ここでの n は正の整数です。少なくとも n 個前の文字と一致します。
例: /a{ 2, } は、「candy」の「a」とは一致しませんが、「caandy」のすべての「a」と「caaaaaaandy」のすべての「a」に一致します。
キャラクター {n,m}
意味: ここでの n と m は両方とも正の整数です。少なくとも n 個、最大で m 個前の文字と一致します。
例: /a{ 1,3 }/ は、「cndy」のどの文字にも一致しませんが、「candy」の「a」と「caandy」の最初の 2 文字には一致します
「caaaaaaandy」の「a」と最初の 3 つの「a」。注: 「caaaaaaandy」に多くの「a」がある場合でも、最初の 3 つの「a」、つまり「aaa」のみが一致します。
キャラクター[xyz]
意味: リスト内の任意の文字と一致する文字のリスト。ハイフン - を使用して文字の範囲を指定できます。
例: [abcd] は [a-c] と同じです。これらは、「brisket」の「b」と「ache」の「c」に一致します。
キャラクター[^xyz]
意味: 1 文字の補数。つまり、リストされた文字を除くすべてに一致します。 ハイフンを使用して文字の範囲を示すことができます。
例: [^abc] と [^a-c] は同等であり、最初に「brisket」の「r」と「chop.」の「h」に一致します。
キャラクター
意味: スペースに一致します (b と混同しないでください)
キャラクターb
意味: スペースなどの単語の分割線と一致します (混同しないでください)
たとえば、/bnw/ は「noonday」の「no」に一致し、/wyb/ は「possibly Yesterday」の「ly」に一致します。
キャラクターB
意味: 単語の改行されていない行と一致します
たとえば、/wBn/ は「正午」の「on」に一致し、/yBw/ は「おそらく昨日」の「ye」に一致します。
キャラクターcX
意味: ここでの X は制御文字です。制御文字の文字列と一致します。
たとえば、/cM/ は文字列内の control-M と一致します。
キャラクターd
意味: [0-9] に相当する数値と一致します。
例: /d/ または /[0-9]/ は、「B2 はスイート番号です」の「2」と一致します。
キャラクターD
意味: [^0-9] に相当する任意の非数値と一致します。
たとえば、/D/ または /[^0-9]/ は、「B2 はスイート番号です」の「B」と一致します。
キャラクターf
意味: フォーム文字と一致します
キャラクターn
意味: 改行文字と一致します
キャラクターr
意味: 復帰文字と一致します
キャラクター
意味: [fnrtv] と同等の、スペース、タブ、フォーム フィード、改行文字を含む単一の空白文字と一致します。
例: /sw*/ は、「foo bar」の「bar」と一致します。
キャラクターS
意味: [^ fnrtv] に相当する、空白以外の 1 文字と一致します。
例: /S/w* は、「foo bar」の「foo」と一致します。
キャラクターt
意味: タブ文字と一致します
キャラクターv
意味: ヘッダーのタブ文字と一致します
キャラクターw
意味: [A-Za-z0-9_] に相当する、すべての数字、文字、アンダースコアと一致します。
例: /w/ は、「apple,」の「a」、「.28」の「5」、および「3D.」の「3」に一致します。
キャラクターW
意味: [^A-Za-z0-9_] に相当する、数字、文字、アンダースコアを除く他の文字と一致します。
たとえば、/W/ または /[^$A-Za-z0-9_]/ は、「50%.」の「%」に一致します。
キャラクターn
意味: ここでの n は正の整数です。正規表現の最後の部分文字列に一致する n の値 (左括弧をカウントします)。
例: /apple(,)sorange1/ は、「apple、orange、cherry、peach」の「apple、orange」に一致します。より完全な例を以下に示します。
注: 左括弧内の数値が n で指定された数値より小さい場合、n は次の行の 8 進エスケープを説明として受け取ります。
文字 8 進数と 16 進数
意味: ここでの oooctal は 8 進数のエスケープ値、xhex は 16 進数のエスケープ値で、ASCII コードを正規表現に埋め込むことができます
PS: 次の表は、正規表現のコンテキストにおけるメタキャラクターとその動作の完全なリストです。
キャラクター説明
次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。たとえば、「n」は文字「n」と一致します。 「n」は改行文字に一致します。シーケンス '' は "" に一致し、"(" は "(" に一致します。
^
入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は 'n' または 'r' の後の位置にも一致します。
$
入力文字列の末尾と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は 'n' または 'r' の前の位置にも一致します。
*
直前の部分式と 0 回以上一致します。たとえば、zo* は「z」と「zoo」に一致します。 * {0,} に相当します。
+ 前の部分式と 1 回以上一致します。たとえば、「zo+」は「zo」と「zoo」には一致しますが、「z」には一致しません。 + は {1,} と同等です。
?
直前の部分式と 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 ? {0,1} に相当します。
{n}
n は非負の整数です。一致が n 回決定されました。たとえば、「o{2}」は「Bob」の「o」と一致することはできませんが、「food」の 2 つの o とは一致します。
{ん、}
n は非負の整数です。少なくとも n 回一致します。たとえば、「o{2,}」は「Bob」の「o」とは一致しませんが、「foooood」のすべての「o」と一致します。 「o{1,}」は「o+」と同等です。 「o{0,}」は「o*」と同等です。
{n,m}
m と n はどちらも負ではない整数で、n ?
この文字が他の修飾子 (*、+、?、{n}、{n,}、{n,m}) の直後にある場合、一致パターンは非貪欲です。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列の可能な限り多くの部分と一致します。たとえば、文字列「oooo」の場合、「o+?」は単一の「o」に一致しますが、「o+」はすべての「o」に一致します。
.
「n」を除く任意の 1 文字と一致します。 「n」を含む任意の文字と一致するには、「[.n]」のようなパターンを使用します。
(パターン)
パターンを一致させて、この一致を取得します。取得された一致は、VBScript の SubMatches コレクションまたは JScript の {CONTENT}... 属性を使用して、生成された Matches コレクションから取得できます。括弧文字と一致させるには、「(」または「)」を使用します。
(?:パターン)
パターンに一致しますが、一致結果は得られません。これは、これは非検索一致であり、後で使用するために保存されないことを意味します。これは、「または」文字 (|) を使用してパターンの一部を結合する場合に便利です。たとえば、「industr(?:y|ies)」は「industry|industries」より短い式です。
(?=パターン)
前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?=95|98|NT|2000)」は、「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。プリフェッチでは文字は消費されません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます。
(?!パターン)
否定先読みは、パターンに一致しない文字列が始まる任意の点で検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。たとえば、「Windows (?!95|98|NT|2000)」は、「Windows 3.1」の「Windows」と一致しますが、「Windows 2000」の「Windows」とは一致しません。プリフェッチは文字を消費しません。つまり、一致が発生した後、次の一致の検索は、プリフェッチを含む文字の後に開始されるのではなく、最後の一致の直後に開始されます
x|y
x または y と一致します。たとえば、「z|food」は「z」または「food」と一致します。 '(z|f)ood' は、「zood」または「food」と一致します。
[xyz]
キャラクターコレクション。含まれている文字のいずれかと一致します。たとえば、「[abc]」は「plain」の「a」と一致します。
[^xyz]
ネガティブなキャラクターのコレクション。含まれていない任意の文字と一致します。たとえば、「[^abc]」は「plain」の「p」と一致します。
[a-z]
文字範囲。指定された範囲内の任意の文字と一致します。たとえば、「[a-z]」は、「a」から「z」の範囲内の任意の小文字の英字と一致します。
[^a-z]
負の文字範囲。指定された範囲内にない任意の文字と一致します。たとえば、「[^a-z]」は「a」から「z」の範囲にない任意の文字と一致します。
ば
単語とスペースの間の位置である単語境界と一致します。たとえば、「erb」は「never」の「er」と一致しますが、「動詞」の「er」とは一致しません。
ば
単語以外の境界と一致します。 「erB」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。
CX
x で指定された制御文字と一致します。たとえば、cM は Control-M または復帰文字と一致します。 x の値は、A ~ Z または a ~ z のいずれかでなければなりません。それ以外の場合、c はリテラルの「c」文字として扱われます。
だ
数字と一致します。 [0-9]に相当します。
だ
数字以外の文字と一致します。 [^0-9] と同等。
ふ
フォーム フィード文字と一致します。 x0c および cL に相当します。
ん
改行文字と一致します。 x0a および cJ に相当します。
復帰文字と一致します。 x0d および cM に相当します。
す
スペース、タブ、フォーム フィードなどの任意の空白文字と一致します。 【fnrtv】に相当。
す
空白以外の任意の文字と一致します。 [^ fnrtv] に相当します。
タブ文字と一致します。 x09 および cI に相当します。
v
垂直タブ文字と一致します。 x0b および cK に相当します。
w
アンダースコアを含む任意の単語文字と一致します。 「[A-Za-z0-9_]」と同等。
わ
単語以外の文字と一致します。 「[^A-Za-z0-9_]」と同等。
xn
n と一致します。n は 16 進数のエスケープ値です。 16 進数のエスケープ値は、正確に 2 桁の長さである必要があります。たとえば、「x41」は「A」と一致します。 「x041」は「x04」および「1」と同等です。 ASCII エンコーディングは正規表現で使用できます。 .
番号
num と一致します。ここで、num は正の整数です。取得した一致への参照。たとえば、「(.)」は、連続する 2 つの同一の文字に一致します。
ん
8 進エスケープ値または後方参照を識別します。 n の前に少なくとも n 個のフェッチされた部分式がある場合、n は後方参照です。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ値になります。
んん
8 進エスケープ値または後方参照を識別します。 nm の前に少なくとも nm 個のフェッチされた部分式がある場合、nm は後方参照です。 nm の前に少なくとも n が取得されている場合、n は後方参照であり、その後にリテラル m が続きます。前述の条件がいずれも満たされない場合、n と m が両方とも 8 進数 (0 ~ 7) であれば、nm は 8 進エスケープ値 nm と一致します。
nml
n が 8 進数 (0 ~ 3) で、m と l が両方とも 8 進数 (0 ~ 7) である場合、8 進数のエスケープ値 nml が一致します。
うん
n と一致します。n は 4 桁の 16 進数で表される Unicode 文字です。たとえば、u00A9 は著作権記号 (?) に一致します。
qeenooさんのブログより抜粋