ここでは.NET Frameworkで使用できる正規表現要素について解説します。 .NET Frameworkの正規表現はPerlやJavaScriptなど他の処理系で用いられる正規表現と概ね互換性のあるものになっています。
これらの正規表現要素を使ったパターンマッチングと文字列操作の具体的方法については正規表現によるパターンマッチングと文字列操作、また特にグループやキャプチャに関する事柄については正規表現の構造化および処理(マッチ・グループ・キャプチャ)を参照してください。
文字クラス
文字クラスの正規表現要素。 文字クラスは、任意の値・範囲・カテゴリに該当する文字一文字を表します。
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 | 備考 | |
---|---|---|---|---|---|
任意の文字 | . | \nを除く任意の一文字 |
.o.
(連続する任意の3文字のうち2文字目がoの箇所にマッチ |
The quick brown fox jumps over the lazy dog | RegexOptions.Singlelineの場合は\nも含む |
文字グループ | [chars] | 文字グループ内の任意の一文字 |
[aeiou]
(a, e, i, o, uいずれかの文字にマッチ) |
The quick brown fox jumps over the lazy dog | |
[^chars] | 文字グループ内の任意の一文字以外 |
[^aeiou]
(a, e, i, o, u以外の文字にマッチ) |
The quick brown fox jumps over the lazy dog | ||
[first-last] | 文字グループの範囲内の一文字 |
[a-f]
(aからfまでの文字にマッチ) |
The quick brown fox jumps over the lazy dog | ||
[^first-last] | 文字グループの範囲外の一文字 |
[^a-f]
(aからf以外の文字にマッチ) |
The quick brown fox jumps over the lazy dog | ||
[first1-last1first2-last2...] | 文字グループの範囲内の一文字(複数の範囲) |
[0-9a-fA-F]
(0から9、aからf、AからFの文字にマッチ) |
0x1234cdcd
&h00FF8040 |
||
[^first1-last1first2-last2...] | 文字グループの範囲外の一文字(複数の範囲) |
[^0-9a-fA-F]
(0から9、aからf、AからF以外文字にマッチ) |
0x1234cdcd
&h00FF8040 |
||
[base-[exclude]] | 文字グループbaseから文字グループexludeを減算したクラス内の一文字 |
[a-z-[d-w]]
|
abcdefghijklmnopqrstuvwxyz | [a-z-[d-w]] = [a-z]-[d-w] = [a-cx-z] |
|
[base-[exclude1-[exclude2]]] | (文字グループの減算を入れ子にしたもの) |
[a-z-[d-w-[m-o]]]
|
abcdefghijklmnopqrstuvwxyz | [a-z-[d-w-[m-o]]] = [a-z]-[d-w-[m-o]] = [a-z]-[d-w]+[m-o] = [a-cx-z]+[m-o] = [a-cx-zm-o] |
|
空白 | \s | 空白を表すUnicode文字 | \s |
"a_b\tc\nあ_い\rう"
(_は半角空白、_は全角空白) |
RegexOptions.ECMAScriptの場合は[ \f\n\r\t\v] と等価 |
\S | \s以外の文字 | \S | "a b\tc\nあ い\rう" | RegexOptions.ECMAScriptの場合は[^ \f\n\r\t\v] と等価 |
|
単語に使用される文字 | \w | 単語に使用されるUnicode文字 | \w | abc123_+!&あいう漢字123一二三『!☆〆々 | RegexOptions.ECMAScriptの場合は[a-zA-Z0-9_] と等価 |
\W | \w以外の文字 | \W | abc123_+!&あいう漢字123一二三『!☆〆々 | RegexOptions.ECMAScriptの場合は[^a-zA-Z0-9_] と等価 |
|
10進数字 | \d | 10進数字に使用されるUnicode文字 | \d | abc123_+!&あいう漢字123一二三『!☆〆々 | RegexOptions.ECMAScriptの場合は[0-9] と等価 |
\D | \d以外の文字 | \D | abc123_+!&あいう漢字123一二三『!☆〆々 | RegexOptions.ECMAScriptの場合は[^0-9] と等価 |
|
Unicodeカテゴリ | \p{name} | nameで指定されたカテゴリまたは名前付きブロック内のUnicode文字 | \p{L} (Unicode一般カテゴリ"L" (Letter, 字)に該当する文字にマッチ) |
abc123_+!&あいう漢字123一二三『!☆〆々 | サポートされるカテゴリ・ブロック名の一覧はMSDNの文字クラス参照 |
\P{name} | \p{name}以外の文字 | \P{IsCJKUnifiedIdeographs} (名前付きブロック"IsCJKUnifiedIdeographs" (CJK統合漢字、U+4E00-9FFF)に該当しない文字にマッチ) |
abc123_+!&あいう漢字123一二三『!☆〆々 | サポートされるカテゴリ・ブロック名の一覧はMSDNの文字クラス参照 | |
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 | 備考 |
RegexOptions.Singlelineと"."の動作の違い
.
は\n
を除く任意の一文字を表しますが、RegexOptions.Singlelineを指定した単一行モードでは\n
にもマッチするようになります。
正規表現 | RegexOptions | マッチする箇所 |
---|---|---|
.+
|
None | "line1\nline2\nline3" |
Singleline | "line1\nline2\nline3" | |
正規表現 | RegexOptions | マッチする箇所 |
関連:§.RegexOptions.Multilineと^, \Aの動作の違い、§.RegexOptions.Multilineと$, \z, \Zの動作の違い
文字のエスケープ
文字のエスケープの正規表現要素。 制御文字や正規表現要素として使われる文字などをエスケープする場合、文字を16進形式で表す場合などに使用します。
エスケープ文字 | 値 | 備考 |
---|---|---|
\uxxxx | 4桁の16進数xxxxで表されるUnicode文字 |
" " = "\u0020" = "\x20" = "\040"
|
\xxx | 2桁の16進数xxで表されるASCII文字 |
" " = "\u0020" = "\x20" = "\040"
|
\0ooo | 3桁までの8進数oooで表されるASCII文字 |
" " = "\u0020" = "\x20" = "\040"
※\numberの表現は前方参照でも用いられる点に注意 |
\cC | Ctrl+Cで表されるASCII制御文字 |
"\cJ" = "\n" = "\u000a"
|
\char | charのエスケープ表現 | 正規表現要素に使われる文字(* や[ など)を通常の文字としてエスケープする場合に用いる |
\a | BEL, ベル |
= "\u0007"
|
\b | BS, バックスペース |
= "\u0008"
文字クラスとして使用された場合のみバックスペースとして解釈される それ以外の場合は単語の境界を表すアトミックゼロ幅アサーションとして解釈される |
\t | HT, 水平タブ |
= "\u0009"
|
\n | LF, ラインフィード |
= "\u000a"
|
\v | VT, 垂直タブ |
= "\u000b"
|
\f | FF, フォームフィード |
= "\u000c"
|
\r | CR, キャリッジリターン |
= "\u000d"
|
\e | ESC, エスケープ |
= "\u001b"
|
エスケープ文字 | 値 | 備考 |
量指定子
量指定子の正規表現要素。 量指定子は文字クラスまたはグループの連続する回数を指定します。
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 |
---|---|---|---|
* | 0個以上連続する箇所 |
a*x
(連続する0個以上のaの後にxがある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
+ | 1個以上連続する箇所 |
a+x
(連続する1個以上のaの後にxがある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
? | 0個または1個連続する箇所 |
a?x
(aの後にxある箇所、またはxのある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
{n} | n個連続する箇所 |
a{3}x
(連続する3個のaの後にxがある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
{n,} | n個以上連続する箇所 |
a{3,}x
(連続する3個以上のaの後にxがある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
{n,m} | n個以上m個以下連続する箇所 |
a{1,3}x
(連続する1から3個のaの後にxがある箇所にマッチ) |
xaxaaxaaaxaaaaxaaaaax |
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 |
なお、一部処理系でサポートされる{,n}
の形式(n個以下の連続)は、.NET Frameworkの正規表現では使用できません。
最短一致の量指定子
量指定子の後に?
を付けると最短一致の量指定子となります。 最短一致では、できるだけ少ない回数の連続にマッチするようになります。 ?
のない量指定子は最長一致となり、できるだけ多い回数の連続にマッチするようになります。
正規表現要素 | マッチする数 | 使用例 | 最初にマッチする箇所 |
---|---|---|---|
*? | 0個以上連続する箇所の中で最短の箇所 |
a*
a*?
|
aaaaabbbbb (1文字目からの5文字にマッチ) aaaaabbbbb (1文字目からの0文字にマッチ) |
+? | 1個以上連続する箇所の中で最短の箇所 |
a+
a+?
|
aaaaabbbbb
aaaaabbbbb |
?? | 0個または1個連続する箇所の中で最短の箇所 |
ab?
ab??
|
abcdefghij
abcdefghij |
{n}? |
n個連続する箇所 ({n}と同義) |
||
{n,}? | n個以上連続する箇所の中で最短の箇所 |
a{3,}
a{3,}?
|
aaaaabbbbb
aaaaabbbbb |
{n,m}? | n個以上m個以下連続する箇所の中で最短の箇所 |
a{2,4}
a{2,4}?
|
aaaaabbbbb
aaaaabbbbb |
正規表現要素 | マッチする数 | 使用例 | 最初にマッチする箇所 |
アンカー (アトミックゼロ幅アサーション)
アンカーの正規表現要素。 アンカー(アトミックゼロ幅アサーション)は文字列の先頭・末尾や境界などの条件(=アサーション)を表します。 他の正規表現要素が長さを持つのに対して、アンカーは境界などを表すため長さを持ちません(=ゼロ幅)。
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 | 備考 |
---|---|---|---|---|
^ | 文字列の先頭 |
^http
(httpで始まる箇所にマッチ) |
http://
https:// ftp:// (マッチしない) |
RegexOptions.Multilineの場合は文字列の先頭に加え行頭も表す |
$ | 文字列の末尾 |
\.html$
(.htmlで終わる箇所にマッチ) |
index.html
index.xhtml (マッチしない) index.html.org (マッチしない) |
RegexOptions.Multilineの場合は文字列の末尾に加え行末も表す |
\A | 文字列の先頭 | (下表参照) |
^ とは異なりRegexOptions.Multilineでも意味は変わらない |
|
\z | 文字列の末尾 | (下表参照) |
$ とは異なりRegexOptions.Multilineでも意味は変わらない |
|
\Z | 文字列の末尾または文字列の末尾の\nの前 | (下表参照) |
$ とは異なりRegexOptions.Multilineでも意味は変わらない |
|
\G | 前回の一致が終了した位置 (未整理 正規表現のアンカー) |
|||
\b | 単語の境界(\wと\Wの境界) (未整理 正規表現のアンカー) |
文字クラス[\b] はバックスペースを表す置換バターン \b は常にバックスペースを表す |
||
\B | \b以外 (未整理 正規表現のアンカー) |
|||
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 | 備考 |
RegexOptions.Multilineと^, \Aの動作の違い
^
および\A
は文字列の先頭にマッチするという点では同じですが、RegexOptions.Multilineを指定した場合は^
は行頭にもマッチするようになります。
正規表現 | RegexOptions | マッチする箇所 |
---|---|---|
^line
|
None | "line1\nline2\nline3" |
Multiline | "line1\nline2\nline3" | |
\Aline
|
None | "line1\nline2\nline3" |
Multiline | "line1\nline2\nline3" | |
正規表現 | RegexOptions | マッチする箇所 |
RegexOptions.Multilineと$, \z, \Zの動作の違い
$
および\Z
は文字列の末尾にマッチするという点では同じですが、RegexOptions.Multilineを指定した場合は$
は行末にもマッチするようになります。 また、\z
は文字列の末尾に\n
がある場合はマッチしませんが、\Z
は文字列の末尾に\n
がある場合でもマッチします。
正規表現 | RegexOptions | マッチする箇所 |
---|---|---|
line$
|
None |
"1st line\n2nd line\n3rd line\n"
"1st line\n2nd line\n3rd line" |
Multiline |
"1st line\n2nd line\n3rd line\n"
"1st line\n2nd line\n3rd line" |
|
line\z
|
None |
"1st line\n2nd line\n3rd line\n" (マッチ箇所なし) "1st line\n2nd line\n3rd line" |
Multiline |
"1st line\n2nd line\n3rd line\n" (マッチ箇所なし) "1st line\n2nd line\n3rd line" |
|
line\Z
|
None |
"1st line\n2nd line\n3rd line\n"
"1st line\n2nd line\n3rd line" |
Multiline |
"1st line\n2nd line\n3rd line\n"
"1st line\n2nd line\n3rd line" |
|
正規表現 | RegexOptions | マッチする箇所 |
先読み・後読み(戻り読み)
グループ化構成体のうち、先読み/後読み(もしくは戻り読み)の正規表現要素。 先読み/後読みは正規表現に対する一種の付加的な条件を表します。
正規表現要素 | 動作 | 使用例 | マッチ例 |
---|---|---|---|
(?=subexpression) (肯定先読み) |
subexpressionが後続することを要求する 先行する正規表現がマッチした箇所から先読みしてsubexpressionが後続する場合のみマッチ |
Windows(?=\s\d+)
('Windows'にマッチ、ただし空白に続けて1文字以上の数字が後続する) |
Windows 2000
Windows XP (マッチしない) Windows Vista (マッチしない) Windows 7 |
(?!subexpression) (否定先読み) |
subexpressionが後続しないことを要求する 先行する正規表現がマッチした箇所から先読みしてsubexpressionが後続しない場合のみマッチ |
Windows(?!\s\d+)
('Windows'にマッチ、ただし空白に続けて1文字以上の数字が後続しない) |
Windows 2000 (マッチしない) Windows XP Windows Vista Windows 7 (マッチしない) |
(?<=subexpression) (肯定後読み) |
subexpressionが先行することを要求する 後続する正規表現がマッチした箇所から戻り読みしてsubexpressionが先行する場合のみマッチ |
(?<=IE)\d+
(1文字以上の数字にマッチ、ただし'IE'が先行する) |
IE7
IE8 FF2 (マッチしない) FF3 (マッチしない) |
(?<!subexpression) (否定後読み) |
subexpressionが先行することを要求する 後続する正規表現がマッチした箇所から戻り読みしてsubexpressionが先行しない場合のみマッチ |
(?<!IE)\d+
(1文字以上の数字にマッチ、ただし'IE'が先行しない) |
IE7 (マッチしない) IE8 (マッチしない) FF2 FF3 |
正規表現要素 | 動作 | 使用例 | マッチ例 |
先読み/後読みでは先行/後続する正規表現にマッチした箇所からsubexpressionが評価される点に注意してください。 例えば"Windows"
が先行しない文字列にマッチする正規表現を意図して(?<!Windows).+
とした場合、"Windows Vista"
という文字列に対しては文字列全体がマッチしてしまいます。 これは.+
の部分で"Windows Vista"
全体がマッチする一方、そこから戻り読みしても期待する"Windows"
が出現しないため否定後読みの条件にマッチしないからです。
グループ
グループ化構成体のうち、部分式・グループ化の正規表現要素。
正規表現要素 | グループ化される箇所 | 使用例 | マッチ例 (下付き文字はグループ番号またはグループ名) |
備考 |
---|---|---|---|---|
(subexpression) | subexpressionにマッチする箇所 |
\b(\w{3})\s(\w+)\b
(3文字の単語とそれに続く単語をキャプチャ) |
The1 quick2 brown fox1 jumps2 over the1 lazy2 dog | RegexOptions.ExplicitCaptureの場合は(?:subexpression) と同様に扱われる(キャプチャされない) |
(?:subexpression) | subexpressionにマッチしてもキャプチャされない |
\b(?:\w{3})\s(\w+)\b
(3文字の単語に続く単語をキャプチャ) |
The quick1 brown fox jumps1 over the lazy1 dog | |
(?<name>subexpression) | subexpressionにマッチする箇所をグループ名nameとしてキャプチャする |
\b(?<def_art>(?:T|t)he)\s(?<word>\w+)\b
(定冠詞The/theをグループ名 def_art 、The/theに続く単語をグループ名word としてキャプチャ) |
Thedef_art(1) quickword(2) brown fox jumps over thedef_art(1) lazyword(2) dog | |
(?<name1-name2>subexpression) | グループ定義の均等化 (未整理 グループ化構成体) |
|||
(?>subexpression) | 非バックトラッキング部分式 (未整理 グループ化構成体) |
|||
正規表現要素 | グループ化される箇所 | 使用例 | マッチ例 (下付き文字はグループ番号またはグループ名) |
備考 |
マッチ結果のうちグループ化された部分はMatch.Groupsプロパティを参照することで取得できるようになります。
グループ番号の割り振られ方
グループ番号はグループの位置順に1から始まるインデックスが与えられます。 グループ番号0のグループは正規表現にマッチした箇所全体を意味します。 またグループ名を明示したグループにもグループ番号が与えられます。 グループ名に与えられるグループ番号は、グループ名を明示しない場合と同じとなります。 入れ子になったグループの場合は、もっとも外側のグループから順にインデックスが与えられます。
例えばa(b(c(d)(e)(f(g))))h
という正規表現の場合、各グループに割り当てられるインデックスは次のようになります。
ボックスを使って図式化すると次のようになります。
a(b(c(d)(e)(f(g))))h
グループの数が多く正規表現が複雑になる場合は、正規表現(?<name>subexpression)
を使ってグループに名前を付けることによりグループとその意味をわかりやすくすることができます。
選択・条件分岐
代替構成体の正規表現要素。 正規表現の選択・条件分岐を表します。
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 |
---|---|---|---|
expression1|expression2|... |
| で区切られた正規表現のいずれかに一致する箇所 |
fox|dog|(T|t)he
(fox, dog, The, theのいずれかにマッチ) |
The quick brown fox jumps over the lazy dog |
(?(expression)yes) | expressionに一致する場合はyesに一致する箇所、そうでない場合はマッチしない |
(?(^Win)Win(dows\s)?\w+)
(Winで始まる場合は'Win'または'Windows 'に続けて1文字以上続く文字列) |
Windows 7
Windows Vista Win32 Mac OS X (マッチしない) Debian GNU/Linux (マッチしない) Ubuntu (マッチしない) |
(?(expression)yes|no) | expressionに一致する場合はyesに一致する箇所、そうでない場合はnoに一致する箇所 |
(?(^Win)Win(dows\s)?\w+|.*Linux.*)
(Winで始まる場合は'Win'または'Windows 'に続けて1文字以上続く文字列、そうでない場合は'Linux'を含む文字列にマッチ) |
Windows 7
Windows Vista Win32 Mac OS X (マッチしない) Debian GNU/Linux Ubuntu (マッチしない) |
(?(number)yes|no) | グループ番号numberに一致する箇所があった場合はyesに一致する箇所、そうでない場合はnoに一致する箇所 |
(Windows)?(?(1)\s\w+|Win\w+)
'Windows'をグループ番号1でキャプチャし、グループ番号1に一致する箇所があった場合は続けて空白一文字と1文字以上が続く文字列、そうでない場合は'Win'で始まる文字列 |
Windows 7
Windows Vista Win32 Mac OS X (マッチしない) Debian GNU/Linux (マッチしない) Ubuntu (マッチしない) |
(?(name)yes|no) | 名前付きグループnameに一致する個所があった場合はyesに一致する箇所、そうでない場合はnoに一致する箇所 |
(?<win>Windows)?(?(win)\s\w+|Win\w+)
(上記と同じ正規表現でグループ番号1にグループ名 win を与えたもの) |
|
正規表現要素 | マッチする箇所 | 使用例 | マッチ例 |
前方参照
前方参照構成体の正規表現要素。 前方参照は、前方参照が現れる以前にマッチしたグループの値を表します。
正規表現要素 | 値 | 使用例 | マッチ例 |
---|---|---|---|
\number | グループ番号numberの値 |
(\"|')[^\1]+\1
(同一の引用符 " または' で括られた範囲にマッチ) |
"'quoted' string"
'quoted "string"' "'quoted' 'string'" "quoted' "string' 'quoted" 'string" |
\k<name> | グループ名nameの値 |
(?<char>\w)\k<char>+
(同一の文字が連続する箇所にマッチ) |
abbccaaccbabbcbabaaabbbccbccbacbbcaabbaab |
正規表現要素 | 値 | 使用例 | マッチ例 |
インラインオプション
インラインオプションの正規表現要素。 インラインオプションを使用することで、RegexOptionsでの設定を無視して正規表現内で一時的にオプションを変更することが出来ます。 インラインオプションとして指定できるオプションは次の5つです。 RegexOptions列挙体での指定と同様、以下の5つを任意に組み合わせて指定することができます。
インラインオプション | 動作 | 対応するRegexOptions | 詳細・具体例 |
---|---|---|---|
i | 大文字小文字の違いを無視する | RegexOptions.IgnoreCase | 正規表現によるパターンマッチングと文字列操作 §.大文字小文字の違いの無視 (RegexOptions.IgnoreCase) |
m | 複数行モード | RegexOptions.Multiline |
§.RegexOptions.Multilineと^, \Aの動作の違い
§.RegexOptions.Multilineと$, \z, \Zの動作の違い 正規表現によるパターンマッチングと文字列操作 §.複数行モード (RegexOptions.Multiline) |
s | 単一行モード | RegexOptions.Singleline |
§.RegexOptions.Singlelineと"."の動作の違い
正規表現によるパターンマッチングと文字列操作 §.単一行モード (RegexOptions.Singleline) |
n | 名前または番号を明示したグループのみキャプチャする | RegexOptions.ExplicitCapture | 正規表現の構造化および処理(マッチ・グループ・キャプチャ) §.明示的なグループ化 (RegexOptions.ExplicitCapture) |
x | エスケープされない空白をパターンから除外し、# 以降を行末までのコメントとして扱う |
RegexOptions.IgnorePatternWhitespace |
正規表現要素 | 動作 | 使用例 | マッチ例 |
---|---|---|---|
(?imnsx:subexpression) | オプションを一時的に有効にしてsubexpressionを評価する |
(?i:the)
(大文字小文字を区別せずtheに一致する箇所にマッチ) |
The quick brown fox jumps over the lazy dog |
(?-imnsx:subexpression) | オプションを一時的に無効にしてsubexpressionを評価する |
(?i:windows)\s(?-i:Windows)
(大文字小文字を区別せずwindowsに一致する箇所に続き、大文字小文字も含めて正確にWindowsと一致する箇所にマッチ) |
windows WINDOWS Windows |
(?imnsx-imnsx:subexpression) | 有効・無効にするオプションを一時的に指定してsubexpressionを評価する |
(?n-i:(T|t)he)
(nオプションを有効、iオプションを無効にして (T|t)he に一致する箇所にマッチ = (?i:(?:the)) と同義) |
The quick brown fox jumps over the lazy dog |
正規表現要素 | 動作 | 使用例 | マッチ例 |
コメント
コメントの正規表現要素。 下記の正規表現要素を用いることで正規表現内にコメントを記述することができます。 コード上に正規表現を記述する場合はコードのコメントとして記述することがほとんどですが、正規表現としてしか記述できない箇所ではこの正規表現要素でコメントを記述できます。
正規表現要素 | 意味 | 使用例 | マッチ例 | 備考 |
---|---|---|---|---|
(?#comment) | インラインコメント |
(?i:the(?#大文字小文字を区別せずtheと一致する箇所))
|
The quick brown fox jumps over the lazy dog | /*comment*/のような表現 |
#comment | 行末までのコメント |
(?i:the) #大文字小文字を区別せずtheと一致する箇所
|
The quick brown fox jumps over the lazy dog | //commentのような表現 RegexOptions.IgnorePatternWhitespaceの場合のみコメントとして扱われる 行末までをコメントとして扱うため (?x:) で一時的に有効にすることはできない |
正規表現要素 | 意味 | 使用例 | マッチ例 | 備考 |
置換
置換の正規表現要素。 置換の正規表現要素は、Regex.Replaceメソッドでの置換を行う場合に使用します。
正規表現要素 | 正規表現要素の表す値 | 使用例 | |||
---|---|---|---|---|---|
正規表現 | 置換文字列 | 入力文字列 | 置換後の結果 | ||
$number | グループ番号numberに一致した文字列 |
(\w+)
(1文字以上の単語) |
<$1>
(マッチした箇所を山括弧で括る) |
The quick brown fox jumps over the lazy dog
|
<The> <quick> <brown> <fox> <jumps> <over> <the> <lazy> <dog> |
${name} | グループ名nameに一致した文字列 |
(?<word>\w{5})
(5文字の単語) |
<${word}>
(マッチした山箇所を括弧で括る) |
The quick brown fox jumps over the lazy dog
|
The <quick> <brown> fox <jumps> over the lazy dog |
$$ | 単一の"$"リテラル |
(?<num>[\d\.]+)
(小数点を含む数字) |
$$${num}
(マッチした数字の先頭に$を付ける) |
100 1.25 30.5
|
$100 $1.25 $30.5 |
$& | 一致した文字列全体 |
(\w+)\s(\w+)
(空白で区切られた2つの単語) |
<$&>
(マッチした箇所を山括弧で括る) |
The quick brown fox jumps over the lazy dog
|
<The quick> <brown fox> <jumps over> <the lazy> dog |
$` | 一致した箇所より前にある文字列全体 |
(third)
|
<$`>
( third にマッチした箇所をそれより前にある文字列に置換) |
first second third
|
first second <first second > |
$' | 一致した箇所より後ろにある文字列全体 |
(first)
|
<$'>
( first にマッチした箇所をそれより後ろにある文字列に置換) |
first second third
|
< second third> second third |
$+ | キャプチャした最後のグループに一致した文字列 (未整理 置換) |
||||
$_ | テスト対象の文字列全体 |
(second)
|
<$_>
( second にマッチした箇所を入力文字列に置換) |
first second third
|
first <first second third> third |
正規表現要素 | 正規表現要素の表す値 | 正規表現 | 置換文字列 | 入力文字列 | 置換後の結果 |
使用例 |