如何在github上搜索以获得完全匹配(就像Google的报价一样)

Jus*_*ner 196 search github

我可以使用引号来搜索谷歌的精确匹配"system <<-".如何为github做类似的事情?我不能让它发挥作用.

Den*_*din 116

你不能.官方GitHub 搜索规则:

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

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

解决方法:

如果您需要在单个存储库中搜索,可以在本地克隆它并用于grep完全查找字符串:

grep -r "system <<-" /repository_dir
Run Code Online (Sandbox Code Playgroud)

  • 这很糟糕.他们为什么不修理它?理想情况下,我应该能够使用正则表达式进行搜索.我在哪里去抗议这个?:) (331认同)
  • 现在已经是 2022 年了,您如何使用文字搜索字符串? (15认同)
  • 那些包含点的文字字符串...比如`ldap.mycomp.com`?!?!?!我不需要正则表达式,我只想要一个LITERAL字符串搜索 (12认同)
  • 我已经请了一个支持,他们回应说:"在GitHub搜索中逃脱特殊字符的能力是一个经常被要求的功能.虽然我不能做出任何承诺,但我会在我们的内部功能请求列表中点击这个想法." .我认为这取决于索引大小:github包含的代码太多了. (10认同)
  • 我相信这是一个索引挑战.使逐字双引号搜索工作比现在的实现更难一个数量级.进行正则表达式搜索工作可能要大于1个数量级甚至可能[要求麻烦](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS). (10认同)
  • 这不是修复,因为他们使用elasticsearch,所以他们应该使用新字段重新索引所有数据以将其考虑在内,这意味着大量磁盘。 (2认同)

mrg*_*oom 40

您可以直接使用Google.

这个怎么样?

"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com
Run Code Online (Sandbox Code Playgroud)

  • 这不是假设Google可以访问您的仓库吗?私人回购不应该是这种情况. (74认同)
  • 当谷歌仍然尊重报价以强制进行精确搜索时,这更有意义. (15认同)
  • 它在存储库中工作,例如: `"alias agi=" site::https://github.com/robbyrussell/oh-my-zsh` (2认同)
  • @FullMetalFist 看起来是的,例如`"your_string_to_search"站点:https://github.com filetype:cpp` (2认同)

Dra*_*ex_ 24

  1. 在 GitHub 上打开存储库,例如microsoft/ Fluentui
  2. 按点“。” 打开 VS Code Web 界面
  3. 转到左侧面板中的搜索
  4. 通过搜索栏下方的提示启用索引
  5. 万岁!精确搜索有效

更新:自 2022 年 11 月起,上述解决方案仅在您登录 GitHub 时才有效。

您可以在此链接上启用新搜索体验的预览: https://github.com/features/code-search-code-view/signup

然后只需使用引号即可进行精确匹配:"system <<-"

  • @Sisir 当您在 GitHub.com 上打开存储库并按点“.”时,它将开始在浏览器中运行 VS Code,并打开存储库。 (4认同)
  • VS代码?你能解释一下它与 github 有何关系吗? (2认同)

Von*_*onC 15

您可以: 自 2021 年 12 月起,您从 完成的搜索cs.github.com可以包含特殊字符

改进 GitHub 代码搜索

(来自帕维尔·阿夫古斯蒂诺夫

搜索精确的字符串,支持子字符串匹配和特殊字符,或使用正则表达式(包含在/分隔符中)。

"system <<-"在新的搜索网站上应该可以。

  • 它告诉我注册技术预览版,我注册成功,但是需要多少天才能接受我开始使用该功能?Github 中的默认搜索是病态且无用的。最后不敢相信他们做到了。 (6认同)
  • @Taha 我同意,那里似乎有某种等待名单...... (4认同)
  • 差不多两年后,仍处于技术预览阶段。:-( (3认同)

ces*_*ime 14

今天我试图寻找Github上任何仓库中filter class命名的文件的完全匹配logback.xml.我想出了以下查询来完成这项工作.

"filter class" in:file filename:logback.xml
Run Code Online (Sandbox Code Playgroud)

要启用与引号完全匹配,您需要使用"in:file"修饰符跟随搜索.匹配不是很精确,单词"class"必须跟在单词"filter"之后,但似乎两个单词之间可以有0个或更多的空格或符号字符.

  • 在使用或不使用`in:file`进行搜索时,我发现行为没有区别. (14认同)
  • 我也没有,但是引号中的“ foo bar”确实会搜索相邻单词这一事实对我来说是非常有用的消息 (2认同)

sil*_*egt 11

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

  • 使用“intext:”搜索运算符说明您要查找的特定字符串
  • 添加您感兴趣的编程语言,使用“ext:”运算符(即“ext:py”、“ext:R”、“ext:rb”等)
  • 使用提到的“site:”操作符 mrgloom 在 Github 中的所有公共存储库中搜索。

例子:

intext:"%% 2 == 0" ext:R site:github.com
Run Code Online (Sandbox Code Playgroud)

示例中的 Google 结果

  • 所以我继续阅读,显然[括号在谷歌搜索中被忽略](https://support.google.com/websearch/forum/AAAAgtjJeM4I-nOsFWviRs/?hl=en&amp;gpf=%23!msg%2Fwebsearch%2FI-nO​​sFWviRs%2FOSXB_PyB0yoJ&amp;msgid =OSXB_PyB0yoJ)但是,我不明白为什么“ext”运算符不起作用。根据[this](http://www.googleguide.com/advanced_operators_reference.html#ext),它是“filetype”的未记录别名,但不确定为什么“js”不会被视为一个 (3认同)
  • `intext:".set(" ext:JS site:github.com` 不起作用:/ (2认同)