我可以使用"system <<-"这样的引号从谷歌中搜索精确匹配。
"system <<-"
我如何为GitHub做同样的事情?
今天我试图在Github上的任何repo中寻找名为logback.xml的文件中filter class的精确匹配。于是我提出了下面这个问题。
logback.xml
filter class
"filter class" in:file filename:logback.xml
要启用与引号的精确匹配,您需要在搜索后使用“in:file”修饰符。匹配不是很精确,单词“class”必须跟在单词“filter”后面,但似乎两个单词之间可以有0个或更多的空格或符号字符。
你不能(在2022年之前)。官方GitHub 搜索规则:
由于搜索代码的复杂性,有一些限制 关于如何执行搜索: 只考虑默认的分支。在大多数情况下,这将是主分支。 只有小于384 KB的文件是可搜索的。 只有小于500000个文件的存储库才可以搜索。 在搜索源代码时,必须始终包含至少一个搜索词。例如,搜索language:go无效,而amazing language:go有效。 搜索结果最多只能显示同一文件中的两个片段,但在该文件中可能有更多的结果。 <李> 不能在搜索查询中使用以下通配符: . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ] 搜索将简单地忽略这些符号
language:go
amazing language:go
. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
更新: GitHub现在支持文字字符串,但你也可以尝试下面一些更强大的方法。
对于支持正则表达式的复杂搜索,请尝试Sourcegraph。
git-grep
git支持使用git-grep命令在源代码中搜索。只需克隆一个存储库,并在文件夹中使用命令:
git grep "text-to-search"
选择:
我建议你试试ripgrep工具,它快速简单。工作方式类似git-grep,但看起来更好:
rg "text-to-search"
你可以使用标准grep来搜索文件中的任何文本:
grep
grep -r "text-to-search" /repository
您可以直接使用谷歌。
这个怎么样?
"your_string_to_search" site::https://github.com "your_string_to_search" site::https://gist.github.com
如果你的包在debian中,你可以使用他们的代码搜索,它支持正则表达式:https://codesearch.debian.net/
添加到@mrgloom的答案,如果你正在使用谷歌在Github中寻找特定编程语言的代码,你可以在谷歌的搜索栏中做这样的事情:
例子:
intext:"%% 2 == 0" ext:R site:github.com
. >
如果你的搜索词是一个包含标点符号的文件名或其他子字符串,让GitHub的代码搜索返回该子字符串的实例的部分解决方案是:(1)用空格替换搜索词中的标点符号字符,(2)将搜索词括在引号中。
例如,不要使用搜索词:
repo:my_repo my_image_asset_1.svg
试一试:
repo:my_repo "my image asset 1 svg"
这可能不是所有情况下的完美解决方案;我想它也可以匹配像my-image-asset-1.svg这样的文件名。但是根据您的用例,它可能是“足够好”;?
my-image-asset-1.svg
如果你快速搜索一个特定的回购内,试试:
.
更新:截至2022年11月,上述解决方案仅适用于在GitHub上登录的情况。
您可以在此链接上启用新的搜索体验预览: https://github.com/features/code-search-code-view/signup . < / p >
然后使用引号进行精确匹配:"system <<-"
从2021年2月11日起,你可以在搜索字符串周围加上引号
虽然现在可以搜索精确的字符串,但该功能还不支持对特殊字符的搜索。例子:
自2021年12月起,你从< >强cs.github.com < / >强开始的搜索可以包含特殊字符
cs.github.com
< a href = " https://github。>改进GitHub代码搜索 (从帕维尔Avgustinov) 搜索精确的字符串,支持子字符串匹配和特殊字符,或使用正则表达式(包含在/分隔符中)。
(从帕维尔Avgustinov)
搜索精确的字符串,支持子字符串匹配和特殊字符,或使用正则表达式(包含在/分隔符中)。
/
所以"system <<-"应该在那个新的搜索站点上工作。