Сведения о структуре запросов поиска кода
Синтаксис поиска в этой статье применяется только к поиску кода с помощью 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/"
Использование квалификаторов
Вы можете использовать специализированные ключевые слова для квалификации поиска.
- Квалификатор репозитория
- Квалификаторы организации и пользователей
- Корпоративный квалификатор
- Квалификатор языка
- Квалификация на лицензию
- Квалификатор пути
- Квалификатор символов
- Квалификатор содержимого
- Квалификатор Is
Квалификатор репозитория
Для поиска в репозитории используйте repo: квалификатор. Необходимо указать полное имя репозитория, включая владельца. Например:
repo:github-linguist/linguist
Для поиска в наборе репозиториев можно объединить несколько repo: квалификаторов с логическим оператором OR. Например:
repo:github-linguist/linguist OR repo:tree-sitter/tree-sitter
Примечание.
Поиск кода в настоящее время не поддерживает регулярные выражения или частичное сопоставление имен репозитория, поэтому вам придется ввести все имя репозитория (включая префикс пользователя), чтобы repo: квалификатор работал.