How to search on GitHub to get exact string matches, including special characters
I can search exact matches from Google by using quotes like "system <<-"
.
How can I do the same thing for GitHub?
Update
GitHub's code search tool now supports literal string search as of 2022.You can't. The official GitHub searching rules:
Due to the complexity of searching code, there are a few restrictions on how searches are performed:
- Only the default branch is considered. In most cases, this will be the master branch.
- Only files smaller than 384 KB are searchable.
- Only repositories with fewer than 500,000 files are searchable.
- You must always include at least one search term when searching source code. For example, searching for
language:go
is not valid, whileamazing language:go
is.- At most, search results can show two fragments from the same file, but there may be more results within the file.
- You can't use the following wildcard characters as part of your search query:
. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
The search will simply ignore these symbols.
Clone and use git-grep
:
git support searching in sources with git-grep command. Just clone a repository and use the command in the folder:
git grep "text-to-search"
Alternatives:
I recommend you to try ripgrep tool, it's fast and simple. Works like git-grep
but looks nicer:
rg "text-to-search"
And you can use the standard grep
to search any text in files:
grep -r "text-to-search" /repository
You can use Google directly.
How about this?
"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com
Today I was trying to look for an exact match of filter class
in files named logback.xml
in any repo on Github. And I came up with the following query which did the job.
"filter class" in:file filename:logback.xml
To enable exact matches with quotes you need to follow your search with the "in:file" modifier. The matches are not quite exact, the word "class" will have to follow the word "filter", but it seems there can be 0 or more spaces or symbols characters between the two words.
Adding to @mrgloom's answer, if you're looking for code in a specific programming language in Github using Google you could do something like this in Google's search bar:
- state the specific string you're looking for using the "intext:" search operator
- add the programming language you're interested in, using the "ext:" operator (i.e. "ext:py", "ext:R", "ext:rb", etc.)
- search in all public repos in Github using the "site:" operator mrgloom mentioned.
Example:
intext:"%% 2 == 0" ext:R site:github.com