IntelliJ IDEA 2026.1 Help

構造検索と置換を使用する

構造検索と置換は、コードの特定のパターンを検索し、検索を絞り込む修飾子を追加できる強力なツールです。

このチュートリアルでは、フィールド宣言を検索し、修飾子を追加し、変更されたテンプレートに基づいてコードインスペクションを作成します。 必要に応じて、詳細に入る前に関連するビデオを見ることができます。 ビデオは、以前のバージョンの IntelliJ IDEA 用に作成されたものであるため、若干異なる場合があります。

構造検索 ダイアログを開き、既存のテンプレートの 1 つを検索に使用します。

既存のテンプレート(フィールド宣言)を使用する

  1. メインメニューで 編集 | 検索 | 構造検索 へ移動します。

  2. 構造検索 ダイアログで、 Java | クラスベース ノードの下で クラスの全フィールド を選択して、すべてのフィールド宣言を検索し、 検索 をクリックします。

    既存のテンプレートダイアログ

    その結果、 検索 ツールウィンドウでは、IntelliJ IDEA は Java コードで宣言されたすべてのフィールドを表示します。

    検索ツールウィンドウ: 検索結果

次に、構造検索ダイアログに戻り、事前定義されたテンプレートを少し変更します。 ちなみに、 どこでも検索 ウィンドウを使用して、検索ダイアログにアクセスできます。

定義済みのテンプレートを変更する

  1. Shift を 2 回押して、 どこでも検索 ウィンドウを開きます。

  2. 検索クエリを入力し始め、検索結果のリストで 構造検索 をクリックして構造検索ダイアログを開きます。

    どこでも検索ウィンドウ
  3. 構造検索 ダイアログでテンプレートを更新し、変数 $Field$ の前に final を追加してファイナルフィールドのみを検索するようにします。 ダイアログではコード補完がサポートされています。

    構造検索におけるコード補完ダイアログ
  4. コードを再帰的に検索し、大文字と小文字を区別し、Javaタイプのファイルのみを検索します。

    構造検索ダイアログ: 狭い検索
  5. 範囲を変更すると、IntelliJ IDEAは指定された範囲内でコードパターンが見つかるかどうかをすぐに通知できます。

    構造検索ダイアログ: モジュールスコープ
  6. 検索 ツールウィンドウで結果を確認してください。

    検索ツールウィンドウ: 最終フィールド検索結果

構造検索を使用すると、興味深い検索を実行できます。 例として、別の既存のテンプレート(メソッド呼び出し )を選択してみましょう。

既存のテンプレート(メソッド呼び出し)を使用する

  1. 構造検索 ダイアログで、 the Tools icon をクリックし、 既存テンプレート を選択します。

  2. 既存のテンプレートのリストを開き、 ノードの下にある メソッド呼び出し テンプレートを選択します。

    既存テンプレートダイアログ: メソッド呼び出し
  3. ここで検索を実行すると、コード内のすべてのメソッド呼び出しを含む結果が得られます。 テンプレートを少し変更し、探しているものをより具体的にするために修飾子を使用する必要があります。 修飾子 テキスト を追加して、 print というメソッドを定義しましょう。 print というメソッドの呼び出しを探します。

  4. 正規表現を追加することもできます。例えば、 print を含むメソッドのすべての呼び出しを見つけることです。 そのために、 printprint.* に切り替えます。

    検索結果には、印刷だけでなく println および printf も含まれます。

  5. 検索パターンを変更し、結果が単一のパラメータのみを持つメソッドのみを表示するようにしましょう。 変数 $Parameter$ をクリックし、カウント修飾子 min=1max=1 を追加します。

    パラメーターのカウント修飾子を追加する

    この場合、検索結果は少なくなります。

これらのすべてのメソッド呼び出しを System.out ではなくロギング呼び出しに置き換えるために、この検索を実行していると仮定します。 ロギングメソッドは文字列のみを取り、他のタイプは取りません。

まず、文字列を渡すメソッドを見つけましょう。

  1. 構造検索 ダイアログで、変数 $Parameter$ に対して タイプ 修飾子を追加します。

    型修飾子文字列を追加
  2. Search をクリックします。 その結果、リテラル文字列または型 String の変数のみを受け取るprintメソッドのリストが表示されます。

    検索ツールウィンドウ: 結果

さあ、交換しましょう。

コードを置換する

  1. 構造置換 にアクセスするには、 どこでも検索 ウィンドウを使用します。

  2. 置換テンプレート構造置換 ダイアログで、検索結果を置き換えるコードを追加します。 私たちの場合は java.util.logging.Logger.getLogger(this.getClass().getName()).fine($Parameter$)

    構造の置き換えダイアログ: パターンを置き換える

    です

    検索 をクリックします。

  3. 検索 ツールウィンドウで結果を確認し、置換オプションを使用してすべての結果または選択したものだけを置換します。

    検索ツールウィンドウ: 結果を置き換える

    ご覧のとおり、コードが変更されています。

    置換結果

このテンプレートを保存して、後で参照することができます。

修正したテンプレートを保存する

  1. 構造置換 ダイアログで、 ツール をクリックします。

  2. 表示されたリストで、 テンプレートの保存 を選択します。

  3. テンプレートの名前(print String コール )を追加して、 OK をクリックしましょう。

    テンプレートは、 既存テンプレート ダイアログの ユーザー定義 ノードに保存されます。

    保存されたテンプレート

    構造置換 ダイアログで、 the Search icon をクリックして、最近の検索の履歴を確認し、すばやく再実行できます。

    最近のエントリ

テンプレートをインスペクションとして使用することもできるため、同じコードに遭遇すると警告が表示され、コードをすばやく置き換えることができます。

カスタム検査を作成する

  1. 検索 ツールウィンドウで、置換パターンの結果が表示されたら、 テンプレートからインスペクションを作成 をクリックします。

  2. 開いたダイアログで、テンプレート print String コール の名前を追加します。

    構造検索インスペクションダイアログ

    ツールチップを追加して OK をクリックすることができます。

  3. 設定 ダイアログ(Ctrl+Alt+S )で、 エディター | インスペクション に移動します。

  4. インスペクション ページで、作成した検査を見つけるために 構造検索 ノードを開きます。

    インスペクション設定: 構造検索インスペクション

    これで、エディターでコードをすばやく修正したり、 問題 ビューを使用して警告を確認したり、新しいコードに置き換えたりすることができます。

    問題ビュー

インスペクション設定から直接、カスタム構造検索インスペクションを追加できます。

検査設定からカスタム検査を作成する

  1. 設定 ダイアログ(Ctrl+Alt+S )で、 エディター | インスペクション に移動します。

  2. インスペクション ページで、 構造検索 ノードを選択し、 Add structural search replace inspection をクリックします。 インスペクションは、検索テンプレートまたは置換テンプレートに基づいて作成できます。 置換テンプレートの追加 を選択します。

  3. 構造置換 ダイアログで、検索パターンを少し変更してみましょう。 $Parameter$ 変数の タイプ 修飾子を int に変更しましょう。

  4. replace パターンで、コードを微調整しましょう。 java.util.logging.Logger.getLogger(this.getClass().getName()).fine(String.valueOf($Parameter$))

    パターンの変更
  5. 開いたダイアログで、検査の名前 print int calls を追加し OK をクリックします。

    インスペクションの名前

    新しいインスペクションが 構造検索 に追加され、整数を出力するインスタンスを検索するために実行できます。 このようなコードが見つかったら、ロガー呼び出しに置き換えて、見つかったパラメーターを文字列に変換できます。

インスペクションは、その名前を使用して個別に実行できます。

構造検索検査を実行する

  1. Ctrl+Alt+Shift+I を押すか、メインメニューで コード | コードの解析 | インスペクション名を指定して実行(R)… に移動します。

  2. 開いたダイアログで、検査名 print String コール を入力します。

    インスペクション名の入力
  3. 実行 'print String calls' ダイアログでデフォルトオプションのまま OK をクリックします。

    インスペクションスコープ
  4. 結果を インスペクション結果 ツールウィンドウで確認できます。

    インスペクション結果
2026 年 3 月 30 日