ReSharper 2026.1 Help

正規表現の支援

ReSharper は .NET 正規表現で作業するための豊富なツールセットを提供します。 既存の式をすばやく分析し、エラーを見つけて修正できます。 新しい式を入力する際、ReSharper は自動補完と検証をサポートします。

文字列リテラルの正規表現

デフォルトでは、ReSharper は pattern パラメーターの正規表現を、 Regex クラスのメソッド内でのみ処理します。 ただし、正規表現を含む文字列は、文字列定数、フィールド、他のメソッドの引数など、さまざまな場所で定義できます。 ReSharper で文字列を正規表現として処理したい場合、選択肢は次の 3 つです:

  • コンテキストアクションを使用する: Alt+Enter を押しながら、キャレットが文字列内にあり、 NET 正規表現としてマークする を選択します。

    ReSharper は、文字列に対応するシンボル範囲を正規表現としてマークし、その範囲を内部データベースに保存し、含まれるファイルの変更に応じてトラックします。 この方法は非常に迅速かつ簡単ですが、VCS マージなどの外部ファイルの変更後に範囲が失われる可能性があり、この方法でマークされたインジェクションはローカルでのみ追跡されます。

    後で正規表現として文字列の処理を無効にする場合は、 .NET の正規表現マークを削除する コンテキストアクションを使用できます。

  • 別の方法は、 JetBrains.Annotations[RegexPatternAttribute] を使用して、独自のメソッド、パブリックフィールド、プロパティのパラメーターに正規表現としてアノテーションを付けることです。

    プロジェクトが .NET 7 以降をターゲットにしている場合は、対応するコンストラクター [StringSyntax(StringSyntaxAttribute.Regex)][StringSyntaxAttribute] を使用することもできます。

    ReSharper は、メソッド呼び出しや代入で対応する引数を正規表現として処理します:

    引数の正規表現をハイライトする
  • 3 番目の方法は、文字列リテラルの前のコメント /*language=regexp|jsregexp*/ です。 これらのコメントは多少入力が必要でコードを汚染するかもしれませんが、一方でコードを読む人全員にインテンションを明確にし、コメントが失われることはなく、ReSharper でコードを開く誰もがマークされた文字列で同じ機能を得られます。 ちなみに、コメントのフォーマットは IntelliJ Platform-based IDEsと互換性があります。

    コメント付き C# 文字列の正規表現インジェクション

構文ハイライト

ReSharper は、正規表現の構文構造、エラー、冗長性もハイライトします:

正規表現のハイライト

ハイライトの色は、次の意味を持ちます。

  • ライトブルー - 文字クラス、アンカー、数量子

  • ライトグリーン - グループ化構成要素

  • オレンジ色の構成要素

  • ピンクとライトピンク - エスケープシーケンス

  • グリーン - コメント

  • 赤い波線の下線付き - エラー

  • 青い波の下線 - 警告

区切り文字の 1 つにキャレットを設定すると、角括弧のグループ、マッピング、グループ名、セットがハイライトされます。 ReSharper オプションの 環境 | エディター | 外観 ページにある 一致する区切り文字をハイライトする 設定で、このハイライトを切り替えたり調整したりできます。

デフォルトでは、ReSharper はすべての非逐語的文字列において、正しいエスケープシーケンスと誤ったエスケープシーケンスをハイライトします:

文字列中のエスケープシーケンスのハイライト

必要に応じて、ReSharper オプションの コードインスペクション | 設定 ページで 文字列リテラルの特殊文字をハイライトする チェックボックスをオフにして、このハイライトを無効にできます。

エラーを直す

正規表現のエラーを修正するには、赤でハイライトされている位置にキャレットを置き、 Alt+Enter を押して、対応する クイックフィックスを選択します。

正規表現エラーの最も一般的な例は、エスケープ文字の誤用です。

正規表現エラー

ReSharper はエラーを自動的に修正できます:

ReSharper での正規表現エラーの修正

検証とテスト

ReSharper では、設計時やデバッグ中に正規表現パターンの検証・テストが可能です。 Validate Regular Expression ダイアログでは、さまざまなサンプル文字列を入力して、正規表現がこれらの文字列とどのように一致するかを確認できます。 このダイアログは、メインメニュー ReSharper | ツール | 正規表現を検証… で利用できます。 このダイアログを使用して、式を修正し、目的のマッチングが得られるようにすることができます。

正規表現の検証

ReSharper は標準の .NET 正規表現エンジンを適用し、式は実行時とまったく同じ方法で処理されます。 サンプル文字列内のすべての一致がハイライトされます。

また、マッチはマッチ、マッチのグループ、グループのキャプチャー(2 つ以上ある場合)によってツリービューに表示されます。 ツリー内のノードを選択すると、サンプル文字列の対応する部分と正規表現内のグループをハイライトできます(グループまたはキャプチャーが選択されている場合)。

コードの正規表現を検証する

  1. 正規表現にキャレットを置きます。

  2. Alt+Enter を押すか、キャレットの左側にある アクションインジケーターをクリックして アクションリストを開きます。

  3. 正規表現をテストする コンテキストアクションを選択します

  4. 開いた 正規表現を検証する ダイアログで、 テスト入力 領域にいくつかのサンプル文字列を入力します。

    複数のサンプル文字列を同時にテストするには、文字列を改行で区切り、 行を別々にチェックする チェックボックスをオンにします。 この場合、サンプルは 1 行の文字列である必要があることに注意してください。

  5. オプション リストを使用して、ダイアログのテスト入力に対して式を検証するときに使用される 正規表現オプションを設定します。

  6. 一致 テーブルには、テスト入力内の正規表現のすべての一致が一覧表示されます。 一致をクリックして、テスト入力で見つけることができます。

  7. 正規表現が正常に機能する場合は、 挿入 をクリックしてコードに挿入し直します。

IntelliSense

ReSharper は、ほぼすべての .NET 正規表現構文に対して IntelliSense サポートを提供します。 補完リストでは、各構成要素が簡単な説明とともに表示されます。

正規表現のコード補完

正規表現では、次のタイプの IntelliSense を使用できます。

  • 自動補完 - \([ 文字入力後にトリガーされます

  • 基本補完 Control+Space – 現在のスコープで利用可能な要素を表示します

  • 型一致補完 Control+Shift+Space – 現在のスコープで最も可能性の高い要素を示しています

  • double 補完Control+Space 2 回) – すべての可能な要素を表示

ReSharper の Intellisense は Match.Groups プロパティ 使用時にも活用できます。 ReSharper は式内のグループ名を検出し、補完リストで提案します:

グループ名の完成

プリコンパイルされた正規表現を抽出する

Regex クラスの静的メソッドで使用される正規表現を再利用する必要がある場合は、その正規表現をコンパイル済みの正規表現に抽出できます。

正規表現を抽出するには、メソッド呼び出し内の任意の場所にキャレットを置き、 Alt+Enter を押して、 プリコンパイル済み正規表現へ変換する コンテキストアクションを選択します。

例: IsMatch メソッドの pattern パラメーターから正規表現を抽出することができます。

public void Bar() { var result = Regex.IsMatch("Input", "Pattern"); }

コンテキストアクションを適用した後、パターンは静的フィールドに抽出されます。

private static readonly Regex Regex1 = new Regex("Pattern"); public void Bar() { var result = Regex1.IsMatch("Input"); }

この機能は、次の言語とテクノロジーで サポートされています。

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

この機能は C# で利用可能です

この機能は Visual Basic では使用できません

この機能は C++ では使用できません

この機能は ASP.NET では使用できません

この機能は Razor では使用できません

機能は XAML では使用できません

機能はリソースファイルでは使用できません

機能はビルドスクリプトファイルでは使用できません

機能は SQL/NoSQL ファイルおよびインジェクションでは利用できません

ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。

2026 年 6 月 12 日