Skip to main content

Понимание синтаксиса поиска кода в GitHub

Вы можете создавать поисковые запросы для результатов с помощью специализированных квалификаторов кода, регулярных выражений и логических операций.

Сведения о структуре запросов поиска кода

Синтаксис поиска в этой статье применяется только к поиску кода с помощью GitHub поиска кода. Обратите внимание, что синтаксис и квалификаторы для поиска содержимого, отличного от кода, таких как проблемы, пользователи и обсуждения, не совпадают с синтаксисом для поиска кода. Дополнительные сведения о поиске, отличном от кода, см. в разделе [AUTOTITLE и О поиске на GitHub](/search-github/searching-on-github).

Поисковые запросы состоят из терминов поиска, содержащих текст, который требуется искать, и квалификаторы, которые сужают поиск.

Голый термин без квалификаторов будет соответствовать содержимому файла или пути файла.

Например, следующий запрос:

http-push

Приведенный выше запрос будет соответствовать файлу docs/http-push.txt, даже если он не содержит термин http-push. Он также будет соответствовать файлу, который example.txt вызывается, если он содержит термин http-push.

Можно ввести несколько терминов, разделенных пробелами, чтобы найти документы, удовлетворяющие обоим условиям.

Например, следующий запрос:

sparse index

Результаты поиска будут содержать все документы, содержащие как термины sparse , так и indexв любом порядке. В качестве примеров он будет соответствовать файлу, содержаму SparseIndexVector, файлу с фразой index for sparse treesи даже файлу с именем index.txt , который содержит термин sparse.

Поиск нескольких терминов, разделенных пробелами, эквивалентен поиску hello AND world. Также поддерживаются другие логические операции, например hello OR world. Дополнительные сведения о логических операциях см. в разделе "Использование логических операций".

Поиск кода также поддерживает поиск точной строки, включая пробелы. Дополнительные сведения см. в разделе "Запрос точного соответствия".

Вы можете сузить поиск кода с помощью специализированных квалификаторов, таких как repo:, language: и path:. Дополнительные сведения о квалификаторов, которые можно использовать в поиске кода, см. в разделе "Использование квалификаторов".

Вы также можете использовать регулярные выражения в поисках, окружив выражение косой чертой. Дополнительные сведения об использовании регулярных выражений см. в разделе "Использование регулярных выражений".

Запрос точного совпадения

Для поиска точной строки, включая пробелы, можно окружить строку в кавычках. Например:

"sparse index"

Можно также использовать кавычки в квалификаторов, например:

path:git language:"protocol buffers"

Поиск кавычки и обратных косых кавычек

Для поиска кода, содержащего кавычки, можно экранировать кавычки с помощью обратной косой черты. Например, чтобы найти точную строку name = "tensorflow", можно выполнить поиск:

"name = \"tensorflow\""

Для поиска кода, содержащего обратную косую черту, \используйте двойную обратную косую черту. \\

Две escape-последовательности и \\ могут использоваться вне кавычки\". Однако другие escape-последовательности не распознаются. Обратная косая черта, за которой не следует " или \ включена в поиск, без изменений.

Дополнительные escape-последовательности, такие как \n сопоставление нового символа, поддерживаются в регулярных выражениях. См. статью "Использование регулярных выражений".

Использование логических операций

Поиск кода поддерживает логические выражения. Операторы можно использовать и AND объединить термины OR``NOTпоиска.

По умолчанию смежные термины, разделенные пробелами, эквивалентны использованию AND оператора. Например, поисковый запрос sparse index совпадает с sparse AND indexтем, что результаты поиска будут содержать все документы, содержащие термины sparse и indexв любом порядке.

Для поиска документов, содержащих один или другой термин, можно использовать OR оператор. Например, следующий запрос будет соответствовать документам, содержащим либо sparse``index:

sparse OR index

Чтобы исключить файлы из результатов поиска, можно использовать NOT оператор. Например, чтобы исключить файлы в __testing__ каталоге, можно выполнить поиск:

"fatal error" NOT path:__testing__

Скобки можно использовать для выражения более сложных логических выражений. Например:

(language:ruby OR language:python) AND NOT path:"/tests/"

Использование квалификаторов

Вы можете использовать специализированные ключевые слова для квалификации поиска.

Квалификатор репозитория

Для поиска в репозитории используйте repo: квалификатор. Необходимо указать полное имя репозитория, включая владельца. Например:

repo:github-linguist/linguist

Для поиска в наборе репозиториев можно объединить несколько repo: квалификаторов с логическим оператором OR. Например:

repo:github-linguist/linguist OR repo:tree-sitter/tree-sitter

Примечание.

Поиск кода в настоящее время не поддерживает регулярные выражения или частичное сопоставление имен репозитория, поэтому вам придется ввести все имя репозитория (включая префикс пользователя), чтобы repo: квалификатор работал.

Квалификаторы организации и пользователей