📕

C#の正規表現のチートシートの翻訳

2023/04/02に公開

説明

.NETのサイト内にある正規表現チートシート(PDFやDOC形式)を勝手に翻訳したものです。

公式情報

.NET の正規表現 | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions

単一文字

使用文字列 一致内容
[set] セット内の文字に一致
[^set] セット内の文字に不一致
[a–z] a-zの範囲
[^a–z] a-zの範囲にはない
. \n (改行) を除くすべて
\char エスケープされた特殊文字

制御文字

使用文字列 一致内容 Unicode
\t 水平タブ \u0009
\v 垂直タブ \u000B
\b バックスペース \u0008
\e エスケープ \u001B
\r 復帰 \u000D
\f フォームフィード \u000C
\n 改行 \u000A
\a ベル(アラーム) \u0007
\c char ASCII 制御文字 -

非 ASCII コード

使用文字列 一致内容
\octal 2-3 桁の 8 進文字コード
\x hex 2 桁の 16 進文字コード
\u hex 4 桁の 16 進文字コード

文字クラス

使用文字列 一致内容
\p{ctgry} ユニコードカテゴリまたはブロック内
\P{ctgry} ユニコードカテゴリまたはブロックに含まれていない
\w 単語文字
\W 単語以外の文字
\d 10 進数
\D 10 進数ではない
\s 空白文字
\S 空白文字以外

量指定子

最大一致 最小一致 一致
* *? 0文字以上
+ +? 1文字以上
? ?? 0 または 1 文字
{n} {n}? 厳密にn文字
{n,} {n,}? 最小 n文字
{n,m} {n,m}? nからm文字

アンカー

使用文字列 指定位置
^ 文字列または行の先頭
\A 文字列の先頭
\z 文字列の末尾
\Z 文字列の末尾 (または末尾の \n の前)
$ 文字列または行の末尾 (または末尾の \n の前)
\G 前の一致が終了した場所
\b 単語境界
\B 単語境界ではない

グループ

使用文字列 定義
(exp) インデックス付きグループ
(?<name>exp) 名前付きグループ
(?<name1-name2>exp) バランシンググループ
(?:exp) 非キャプチャー・グループ
(?=exp) ゼロ幅の正の先読み
(?!exp) ゼロ幅の負の先読み
(?<=exp) ゼロ幅の正の後読み
(?<!exp) ゼロ幅の負の後読み
(?>exp) 後戻りしない(最大一致)

インラインオプション

オプション 一致への影響
i 大文字と小文字を区別しない
m 複数行モード
n 明示的 (名前付き)
s 単一行モード
x 空白を無視する
使用文字列 効果
(?imnsx-imnsx) 指定したオプションを設定または無効にする
(?imnsx-imnsx:exp) 式内で指定したオプションを設定または無効にする

後方参照

使用文字列 一致
\n インデックス付きグループ
\k<name> 名前付きグループ

交互

使用文字列 一致
a|b a または b のいずれか
(?(exp)
yes | no)
exp が一致する場合はyes
exp が一致しない場合はno
(?(name)
yes | no)
名前が一致する場合は yes
名前が一致しない場合は no

代替

使用文字列 代替
$n グループ番号 n で一致する部分文字列
${name} グループ名と一致する部分文字列
$$ リテラルの $ 文字($そのもの)
$& 完全一致のコピー
$` 一致前のテキスト
$' 一致後のテキスト
$+ 最後にキャプチャされたグループ
$_ 入力文字列全体

コメント

使用文字列 内容
(?# comment) インラインコメントを追加
# xモードコメントを追加

詳細と例について: http://aka.ms/regex
正規表現をテストするには: http://regexlib.com/RETester.aspx

サポートされている Unicode カテゴリ

カテゴリ 説明
Lu 大文字の文字
LI 小文字の文字
Lt 文字, タイトルケース
Lm 文字, 装飾
Lo 文字, その他
L 文字, すべて
Mn マーク, nonspacing combining
Mc マーク, spacing combining
Me マーク, enclosing combining
M マーク, すべてのダイアクリティカルマーク
Nd 数字, 10 進数
Nl 数字, 文字様記号
No 数字, その他
N 数字, すべて
Pc 句読点, connector
Pd 句読点, dash
Ps 句読点, opening mark
Pe 句読点, closing mark
Pi 句読点, initial quote mark
Pf 句読点, final quote mark
Po 句読点, その他
P 句読点, すべて
Sm 記号, 数学
Sc 記号, 通貨
Sk 記号, 修飾
So 記号, その他
S 記号, すべて
Zs 区切り文字、スペース
Zl 区切り文字, 行
Zp 区切り文字, 段落
Z 区切り記号、すべて
Cc 制御コード
Cf フォーマット制御文字
Cs サロゲート コード ポイント
Co 私用文字(外字)
Cn 未割り当て
C すべての制御文字

名前付き文字セット ブロック (キリル文字など) については、
MSDN ライブラリで "サポートされている名前付きブロック" を検索してください。

正規表現操作

クラス: System.Text.RegularExpressions.Regex
正規表現オブジェクトとパターンマッチング

初期化 コンストラクタを使用する
正規表現 Regex(String)
+ オプション Regex(String, RegexOptions)
+ タイムアウト Regex(String, RegexOptions, TimeSpan)

静的メソッドによるパターンマッチング

以下のメソッドのオーバーロードを使用して、正規表現と検索するテキストを指定します。

一致したパターンの検索と置換

処理 使用メソッド
一致を検証する Regex.IsMatch
単一の一致を取得する Regex.Match (first)
Match.NextMatch (next)
すべての一致を取得する Regex.Matches
一致を置き換える Regex.Replace
テキストを分割する Regex.Split
文字エスケープの処理 Regex.Escape
Regex.Unescape

正規表現パターンに関する情報の取得

取得内容 使用するRegex API
グループ名 GetGroupNames
GetGroupNameFromNumber
グループ番号 GetGroupNumbers
GetGroupNumberFromName
表現 ToString
オプション Options
タイムアウト MatchTimeOut
キャッシュ・サイズ CacheSize
方向 RightToLeft

Discussion