如何在 GitHub 代码搜索中转义字符? [复制]

Posted

技术标签:

【中文标题】如何在 GitHub 代码搜索中转义字符? [复制]【英文标题】:How do I escape characters in GitHub code search? [duplicate] 【发布时间】:2016-03-18 11:35:54 【问题描述】:

我正在尝试使用GitHub's code search 来搜索包含=+ 等字符的代码行。

我从https://help.github.com/articles/searching-code/#considerations-for-code-search了解到,这些字符是通配符,必须转义,否则会被忽略。

这是一个示例:"if \(done is True\)",另一个示例:"if (done is True)"。

两者都在搜索栏右侧返回相同的"your query contains a character that is ignored" 警告。我的转义似乎没有做任何事情,我得到的结果是忽略了字符。

【问题讨论】:

【参考方案1】:

更新:使用github.dev/....,这是github团队的官方解决方案。只需将 URL 中的 .com 替换为 .dev 或在任何 repo 中按点 (.) 键即可在 github.dev 中打开。它甚至可以与私人仓库一起使用。

GitHub 本身不支持高级代码搜索,例如使用特殊字符或排除或包含特定文件夹,我们可以使用GitHub1s 来搜索 repo 中的代码。

GitHub1s 会在 VSCode 中在线打开一个 repo(因此不需要克隆过程),我们可以使用 VSCode 提供的高级代码搜索来搜索。

要在 GitHub1s 中打开 repo,只需将 github.com/.... 替换为 github1s.com/... 即可在 VSCode 中在线查看 repo(换句话说,在 .com 之前添加 1s)。

重要提示:Github1s 中的代码搜索仅适用于公共 repo

【讨论】:

这只是在打开的文件中搜索。因此,虽然它有效,但存在很大的限制。 @maulik13 不,它适用于所有文件(包括未打开的文件),他们在 0.05 及更高版本中添加了此功能。您甚至可以在我的屏幕截图中看到,它显示了未打开文件的结果。更多信息:github.com/conwnet/github1s/pull/199 和 github.com/conwnet/github1s/issues/13 奇怪,当我昨天尝试时,它只搜索打开的文件。 @maulik13 它是公共回购吗?这仅适用于公共回购 @MarkRucker 这是来自与 GitHub 团队合作的 VSCode 团队。 youtube.com/watch?v=c3hHhRME_XIcode.visualstudio.com/docs/remote/…docs.github.com/en/codespaces/developing-in-codespaces/…【参考方案2】:

还有一个(有些人可能会说可耻)-解决方案/解决方法:使用 google...

在搜索字段中输入 site:repo-url 以及您的关键字。

我在 redux-logic 存储库中搜索 action$ 并且至少能够过滤掉所有其他不需要的 action(没有美元符号)结果,这些结果出现在 github 搜索中。我在 Google 中输入(注意引号):

site:https://github.com/jeffbski/redux-logic "action$"

不幸的是,谷歌不会列出所有结果。这就是为什么我一开始就写了semi。所以你可以用谷歌快速试试运气,如果你没有找到你要找的东西,回退到检查 git repo + 使用离线工具搜索,如@987654322 建议的 vscode、intellij 或 cmd-line-tools @

我希望 github 能很快推出一个全新的搜索功能,让用户可以爱而不是恨。

【讨论】:

2021,被微软和那些在“世界上最大最先进的开发平台”上编程的重要人物收购。正如他们所描述的那样,他们被默默地忽略了,不知道该笑还是该哭:D 希望他们很快会改用必应,所有这些问题都会消失 ;)【参考方案3】:

您需要在本地执行此操作。以下是一些选项,来自https://***.com/a/38288679/362202:

克隆贵公司的 github 源网站 在本地做一个git grep,它支持基本的正则表达式或扩展的POSIX正则表达式(git grep -E) 或pickaxe search (git log --all -S...git rev-list --all|grep xxx,也允许使用正则表达式

这些策略不适用于 github 范围的搜索,这是一种耻辱。

【讨论】:

如果您有 1000 多个存储库要搜索怎么办? 如果我想与其他人分享结果......正如人们对 github 等本应用于协作的网站所期望的那样,该怎么办?【参考方案4】:

我不认为你可以为 github 转义字符

来自searching code文档:

您不能在搜索中使用以下通配符 查询:。 , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ ( ) [ ]。 搜索将简单地忽略这些符号。

【讨论】:

对,我看到了。有没有办法逃脱这些字符?这意味着如果我想在我的仓库中搜索 x += 2 就没有办法做到这一点? @ 呢? 遇到了这个; 无用代码搜索!我需要在 Ruby on Rails 代码库中找到 :ok:locked 的所有实例。 Github 的糟糕搜索不允许这样做。 @User:据this issue称,@已被提及不在名单上,但目前还没有回应。 哑巴。很棒的 GitHub。

以上是关于如何在 GitHub 代码搜索中转义字符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

通过 Criteria api 在 LIKE 中转义字符

如何在 Hadoop 上运行的 Cloudera Impala 的 python impyla 查询中转义字符

R SQL Server ODBC连接在服务器名称中转义字符

SQL语句中转义字符怎么写?

SQL语句中转义字符怎么写

在查询中使用通配符在 Spark.SQL() 中转义字符