WebStorm 2026.1 Help

構造検索と置換の例

ご存じのように、通常検索と構造検索の主な違いは、構造検索ではプログラミング言語の構造テンプレートを探していることです。

構造検索の利点は、既存のテンプレートに基づいてパターンを作成し、検索と置換の際に時間を節約できる点です。

既存テンプレートの豊富なリストは、シンプルなパターンからより複雑なパターンまで、多くのユースケースをカバーします。

パターン内の各アイテムは、両側に $ 記号で囲まれた変数で構成されます。

メソッド呼び出し

メソッド呼び出しを検索するための最も簡単なテンプレートは $Instance$.$MethodCall$($Arguments$) です。

メソッド呼び出しのテンプレートを検索

検索 ツールウィンドウには、検出されたメソッド呼び出しが表示されます。

検索ツールウィンドウでの検索結果

特定の数の引数を持つメソッド呼び出しを見つける必要がある場合は、 $Arguments$ 変数にキャレットを置き、その変数に対して フィルターを構成します。

カウントフィルターを使用したメソッド呼び出しの検索テンプレート

検索 ツールウィンドウの検索結果のリストが縮小します。

ソースコード内のメソッド呼び出しに移動するには、 検索 ツールウィンドウ内でそれをダブルクリックします。 WebStorm が対応するファイルをエディターで開き、キャレットをメソッド呼び出しの位置に移動します。

構造検索: ソースに移動

検出されたメソッド呼び出しを含むソースコードは、 検索 ツールウィンドウの右側のペインにも表示されます。

JavaScript および Typescript クラス

JavaScript クラスまたは Typescript クラスを使用している場合は、 MyClass:

class MyClass {}

それからそれを検索する最も簡単なテンプレートは class $name$ {} です。

クラスの構造検索

インターフェースの実装

JavaScript または Typescript インターフェース MyInterface とそれを実装するクラス Implementation がある場合:

class Implementation implements MyInterface{}

次に、実装を検索するための最も簡単なテンプレートは class $Class$ implements $SomeInterface$ {} です。

子孫クラス

JavaScript または Typescript クラス Parent とそれを拡張するクラス Descendant がある場合:

class Descendant extends Parent{}

Descendant を検索するための最も簡単なテンプレートは class $Class$ extends $AnotherClass$ {} です

ステートメント

if ステートメントが if($var$){$code$} である場合に検索するための最も簡単なテンプレート

その結果、検出された出現箇所は 検索 ツールウィンドウに表示されます。興味のあるものをダブルクリックするとソースコードへ移動します。 WebStorm が対応するファイルをエディターで開き、キャレットをステートメントの位置に移動します。

構造検索 if ステートメント

コメントと文字列リテラル

SomethingWeWantToFind を含むコメントまたはリテラルを検索するための最も簡単なテンプレートは、 $SomethingWeWantToFind$ または "$SomethingWeWantToFind$" です。 特定の単語(たとえば、単語として SomethingWeWantToFind )を含むコメント / 文字列を検索するには、これをテキスト制約として指定する必要があります。

HTML と XML の例

次の例は、HTML や XML コードで構造検索を使用する方法を示しています。

XML および HTML タグ、属性、それらの値の検索

タグを検索する最も簡単なテンプレートは <$tag$/> です。

  1. 変数 $tag$ に制約を設定することにより、検索するタグを指定できます。 例: script を指定すると、すべての script タグが取得されます。

    スクリプトタグを検索する
  2. 次の XML および HTML 用検索テンプレートを考えてみましょう: <$tag$ $attribute$=$value$ />。 例えば、 $tag$ 変数に script のテキストフィルタ、 $attribute$ 変数に src を指定すると、リストが絞り込まれます:

    src 属性を持つスクリプトタグを検索する

id 属性が 2 より大きい行をすべて削除する

  1. HTML ファイルを作成し、次のコードを貼り付けてください:

    <!doctype html> <html> <head> <title>Structural Search Example</title> <body> <ul> <li id="1">Example line 1</li> <li id="2">Example line 2</li> <li id="3">Example line 3</li> <li id="a">Example line a</li> <li id="5">Example line 5</li> </ul> </body> </html>
  2. メインメニューで 編集 | 検索 | 構造検索 へ移動します。

  3. 言語 リストから HTML(エイチティーエムエル) を選択してください。

  4. 次の文字列を 検索テンプレート フィールドに貼り付けます。

    <$tag$ $attribute$="$value$">
  5. $tag$ 変数をクリックします。

  6. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに li と入力します。

    フィルターパネルが表示されていない場合は、 修飾子パネルを切り替える をクリックします。

    フィルターパネルを切り替える
  7. $attribute$ 変数をクリックします。

  8. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに id と入力します。

  9. $value$ 変数をクリックします。

  10. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに \d+ と入力します。

    \d+ 正規表現は、検索結果を数値に制限します。 そのため、 id="a" のある行は除外されます。

  11. フィルターパネルからフォーカスを切り替えずに、 追加 ボタンをクリックし、 スクリプト を選択して、次のコードを貼り付けます。

    value.getText().replaceAll (/"/, '').toInteger() > 2

    スクリプトは $value$ 変数の内容を読み取り、それを文字列として返します(たとえば、 "1")。 次に、スクリプトはすべての引用符を置き換え、文字列値を整数に変換して、 2 と比較します。

    2 より大きい ID を持つ行を削除する

li タグのクラス属性の大文字の値を小文字に変換する

  1. HTML ファイルを作成し、次のコードを貼り付けてください:

    <!doctype html> <html> <head> <title class="EXAMPLE">Structural Replace Example</title> <body> <ul> <li class="EXAMPLE">Example line 1</li> <li class="example">Example line 2</li> <li class="EXAMPLE">Example line 3</li> <li class="example">Example line a</li> <li id="EXAMPLE">Example line 5</li> </ul> </body> </html>
  2. メインメニューで 編集 | 検索 | 構造置換 へ移動します。

  3. 言語 リストから HTML(エイチティーエムエル) を選択してください。

  4. 次の文字列を 検索テンプレート フィールドに貼り付けます。

    <$tag$ $attribute$="$value$">
  5. 大文字・小文字を区別 チェックボックスを選択します。

  6. $tag$ 変数をクリックします。

  7. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに li と入力します。

  8. $attribute$ 変数をクリックします。

  9. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに class と入力します。

  10. $value$ 変数をクリックします。

  11. フィルターパネルで、 修飾子を追加 をクリックし、 テキスト​ を選択して、値フィールドに [A-Z].* と入力します。

    [A-Z].* 正規表現は、検索結果を大文字に制限します。

  12. ターゲット リストから を選択してください。 この手順では、 class 属性のすべての大文字の値をハイライトします。

  13. 置換テンプレート フィールドに、 $to_lower_case$ 変数を貼り付けます。

  14. $to_lower_case$ 変数をクリックします。

  15. フィルターパネルで、 修飾子を追加 をクリックし、 スクリプト を選択して、次のコードを貼り付けます。

    value.getText().toLowerCase()
    ターゲットを構造的に置き換える
  16. 検索 をクリックしてください。

  17. 検索 ツールウィンドウで検出結果をプレビューし、 すべて置換 をクリックします。

    構造置換: すべて置換
2026 年 6 月 8 日