如何在github上搜索以获得完全匹配的内容(例如引号对Google的影响)


216

我可以使用诸如的引号从Google搜索完全匹配的内容"system <<-"。如何为github做类似的事情?我不能使它工作。

Answers:


128

你不能 GitHub的官方搜索规则

由于搜索代码的复杂性,执行搜索的方式受到一些限制:

  • 仅考虑默认分支。在大多数情况下,这将是master分支。
  • 仅小于384 KB的文件可搜索。
  • 搜索源代码时,必须始终至少包含一个搜索词。例如,搜索language:go无效,而有效amazing language:go
  • 最多,搜索结果可以显示同一文件中的两个片段,但是文件中可能会有更多结果。
  • 您不能在搜索查询中使用以下通配符
    . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
    搜索只会忽略这些符号。

解决方法:

如果您需要在单个存储库中进行搜索,则可以在本地克隆它,并使用它grep来精确查找字符串:

grep -r "system <<-" /repository_dir

351
这真糟糕。他们为什么不修复它?理想情况下,我应该能够使用正则表达式进行搜索。我该去哪里抗议呢?:)
Daniel Darabos

10
我已经请求了支持,他们回答:“在GitHub搜索中转义特殊字符的功能是经常需要使用的功能。尽管我不能做出任何保证,但我会在我们内部的功能请求列表中对该想法+1。” 。我认为这取决于索引大小:github包含太多代码。
DenisKolodin '16

10
我相信这是一个索引挑战。使逐字双引号搜索工作可能比当前的实现难一个数量级。使正则表达式搜索工作可能困难> 1个数量级,甚至可能会带来麻烦
马特·科卡伊

14
包含点的文字字符串ldap.mycomp.com呢...如?!?!?!我不需要正则表达式,我只想搜索文字字符串
杰森

1
这不是固定的,因为他们使用Elasticsearch,因此他们应该使用一个新字段重新索引所有数据以将其考虑在内,这意味着需要大量磁盘。
Thomas Decaux

44

您可以直接使用Google。

这个怎么样?

"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com

81
这不是假设Google可以访问您的存储库吗?私人回购应该不是这种情况。
Joel B

1
它可以在回购协议中运行,例如:"alias agi=" site::https://github.com/robbyrussell/oh-my-zsh
网站

1
@juanpastas您能提供完整的搜索字符串示例吗?
mrgloom '16

15
当Google仍然尊重报价以强制进行精确搜索时,这更有意义。
Kylotan's

1
@FullMetalFist看起来像是,例如"your_string_to_search" site:https://github.com filetype:cpp
mrgloom

17

今天,我试图在Github上任何回购中查找与filter classin文件完全匹配的文件logback.xml。我想出了以下查询来完成这项工作。

"filter class" in:file filename:logback.xml

要启用带引号的精确匹配,您需要使用“ in:file”修饰符进行搜索。匹配不是很精确,单词“ class”必须紧随单词“ filter”之后,但似乎两个单词之间可能有0个或多个空格或符号字符。


14
使用或不使用时,我发现行为没有差异in:file
Daniel Darabos

2
我也没有,但是引号中的“ foo bar”确实会搜索相邻的单词对我来说是个非常有用的消息
Beni Cherniavsky-Paskin 18-4-10的

3

添加到@ mrgloom的答案中,如果您正在使用Google在Github中寻找特定编程语言的代码,则可以在Google的搜索栏中执行以下操作:

  • 使用“ intext:”搜索运算符陈述您要查找的特定字符串
  • 使用“ ext:”运算符(例如“ ext:py”,“ ext:R”,“ ext:rb”等)添加您感兴趣的编程语言。
  • 使用提到的“ site:”运算符在Github中搜索所有公共仓库。

例:

intext:"%% 2 == 0" ext:R site:github.com

示例中的Google结果


1
intext:".set(" ext:JS site:github.com无效:/
Aditya MP

你是对的!我不明白为什么...我尝试了intext:"set(" inurl:.js site:github.com一下,但效果
不佳

1
因此,我一直在阅读,显然在Google搜索中忽略了括号。但是,我不明白为什么“ ext”运算符不起作用。根据这个它是“文件类型”的无证别名,但不知道为什么,“JS”将不被视为一个
silviaegt

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.