コードの検索

特定のファイルやコード スニペットを検索するには、Google Cloud コンソールの上部にある検索ボックスを使用します。

検索ボックス

Cloud Source Repositories を開く

デフォルトでは、すべての検索で RE2 正規表現が使用されます。正規表現を使用しない場合は、次のように検索文字列を二重引用符(")で囲みます。

foo() # Parentheses are treated as part of a regular expression. Matches 'food'.
"foo()" # Treats the parentheses as literals. Doesn't match 'food'.

検索スコープの設定

検索ボックスの左側にある [スコープ] プルダウン リストを使用すると、ソース リポジトリ インターフェースの場所に応じて、検索範囲を次のいずれかに制限できます。

  • すべて: アクセス権があるすべてのリポジトリを検索します。
  • このプロジェクト: 現在のプロジェクト内のすべてのリポジトリを検索します。
  • リポジトリ: 現在のリポジトリを検索します。
  • このディレクトリ: 現在のディレクトリを検索します。

ファイルを検索する

ファイルを検索するには、いくつかの方法があります。たとえば、file フィルタを使用すると、パスを使用してファイルを検索できます。次に例を示します。

file:main

次のフィルタは、file フィルタと同じ結果を返します。

  • filepath
  • f
  • path

ファイルの名前と拡張子を入力して、ファイル名で検索することもできます。次に例を示します。

main\.java

ファイルの内容を検索する

ファイルの内容を検索するには、content フィルタを使用します。たとえば、次のクエリではすべての Java ファイルの内容を対象に、main という用語を検索します。パスに main を含むインスタンスは検索しません。

lang:java content:main

言語別に検索する

検索結果を特定の言語に制限するには、language または lang フィルタを使用します。たとえば、次の検索では、検索結果を Java 言語に制限しています。

helloworld language:java

次の例に示すように、file フィルタを使用することもできます。

file:\.java

検索ではデフォルトで正規表現が使用されることに注意してください。したがって、次の検索は有効ではありません。

*.java

代わりに、次の検索を試してください。

\.java
lang:java

大文字と小文字を区別した検索を有効にする

検索で大文字と小文字が区別されるようにするには、case フィルタを使用します。たとえば、次の検索では、用語 HelloWorld と一致する結果だけが返されます。大文字と小文字が一致しない helloWorldhelloworld などの結果は除外されます。

case:yes HelloWorld

クラスを検索する

特定のクラスを検索するには、class キーワードを使用します。たとえば、次の検索では、用語 Main が含まれるすべてのクラスが返されます。

class:Main

関数を検索する

特定の関数を検索するには、function または func フィルタを使用します。たとえば、次の検索では、用語 main が含まれるすべての関数が返されます。

function:main

用語を除外する

検索結果から特定の用語を除外するには、除外する用語の前に - 文字を追加します。たとえば次の検索では、用語 main が含まれるすべての関数が返されますが、C++ ファイル内で一致した関数は返されません。

function:main -lang:cpp

文字をエスケープする

検索では、デフォルトで RE2 正規表現が使用されます。正規表現の一部として扱われないように文字をエスケープするには、\ 文字を使用します。たとえば、次の例では用語 main.java を検索します。

main\.java

リテラルを検索する

リテラル検索を行うには、検索語を二重引用符(")で囲みます。たとえば、次の例では用語 main.java を検索します。

"main.java"

記号を検索する

特定の記号を検索するには、symbol キーワードを使用します。たとえば、次の検索ではすべての不変クラスと関数が返されます。

symbol:immutable

AND 演算子を使用する

複数の用語を検索するには、AND 演算子を使用します。この演算子を使用すると、演算子の左右に指定された用語の両方に一致する結果だけが返されます。たとえば次の検索では、用語 serverが含まれる Python ファイルが返されます。

server AND lang:python

複数の検索語を検索する場合は、暗黙的に AND が使用されます。たとえば、上記の例は次のように書き換えることができます。

server lang:python

OR 演算子を使用する

OR 演算子を使用すると、キーワードの左右に指定された式のいずれかに一致する結果が返されます。たとえば、次の検索では用語 hello または world が含まれるファイルが返されます。

hello OR world

検索語をグループ化する

複数の検索語をグループ化するには、次のように括弧(())を使用します。

(hello OR world) AND lang:java

複数のグループをネストすることもできます。次に例を示します。

((Strings OR StringBuilder) AND lang:java) OR (std AND lang:cpp)

検索結果をプレビューする

同じファイル内に検索クエリの結果が複数個含まれていることがあります。次に例を示します。

lang:java function:foo

この検索で見つけようとしているのは、foo 関数が含まれる Java ファイルです。ただし、こうしたファイルには、この関数への参照が複数含まれている場合もあります。このような場合、該当するファイルの検索結果に、[このファイル内のすべての一致を表示] というリンクが示されます。このリンクをクリックすると、そのファイルの内容を表示するプレビュー パネルが開きます。

プレビュー パネルを使用すると、他の検索結果を表示したまま、特定のファイルに含まれる複数の検索結果をまとめてプレビューできます。

検索リファレンス

次の表に、前のセクションで説明した検索フィルタと演算子を示します。

検索フィルタ

次の表に、コードを検索する際に使用できるフィルタを記載します。

フィルタ その他のオプション 説明
case:yes 検索で大文字と小文字が区別されるようにします。デフォルトでは、検索で大文字と小文字は区別されません。

複数の検索語をグループ化する場合、すべての子グループがこのフィルタを継承します。
case:yes Hello World
class: クラス名を検索します。 class:MainClass
コンテンツ: ファイル名とファイルの内容だけを検索します。 content:hello
file: filepath:
path:
f:
パスを基準にファイルを検索します。 file:test.js
function: func: 関数名を検索します。 function:print
lang: language: 特定の言語を基準に結果を検索します。 lang:java test

検索演算子

次の表に、コードを検索する際に使用できる演算子を記載します。

演算子 その他のオプション 説明
AND 論理 AND 演算子。詳細については、AND 演算子の使用をご覧ください。
OR 論理 OR 演算子。詳細については、OR 演算子を使用するをご覧ください。
([SEARCH_EXPRESSION]) 複数の検索語をグループ化します。詳細については、検索語をグループ化するをご覧ください。
- 検索結果から特定の用語を除外します。
\ .\( などの特殊文字をエスケープします。
"[SEARCH_EXPRESSION]" 検索クエリを正規表現として解釈せずに検索を実行します。