【问题标题】:Tool to search source code for strings which can contain quotes, double quotes, a parens, equal sign.. etc?用于搜索可以包含引号、双引号、括号、等号等的字符串的源代码的工具?
【发布时间】:2013-02-26 00:09:23
【问题描述】:

我使用 dtSearch 和 File Locator Lite 之类的工具来搜索我的本地源代码文件中的单词,它们工作正常。

但有时我需要搜索像 'Session["cutid"] =' 之类的短语(不带单引号)并进行精确匹配,其中包括双引号、空格和等号,而我的搜索工具却没有'即使我知道该短语存在,也不会返回任何内容。

你能推荐一个可以找到上面短语的搜索工具,如果它需要一些特殊的语法,写下语法。谢谢。

补充: 不喜欢使用正则表达式,因为我不擅长它们。只想匹配我在搜索词中输入的任何内容。

【问题讨论】:

    标签: search full-text-search


    【解决方案1】:

    我使用 NetBeans,他们的项目搜索功能允许您通过正则表达式进行搜索。我认为大多数其他 IDE 也支持这一点。或者您可以使用 grep 和其他 unix 工具。

    【讨论】:

      【解决方案2】:

      我们的源代码搜索引擎可以做到这一点。它使用特定于语言的扫描器以完全语言准确的方式(例如,理解字符串中的转义序列!)将源代码分解为语言元素(标识符、字符串、数字、cmets、关键字、空格等)。然后,您可以对这些语言原子制定查询。 (我假设您的示例是 PHP;SCSE 处理 PHP,包括字符串文字、Java 中的所有复杂内容......)

      针对您的特定搜索的查询:

         I=Session '[' S=cutid ']' '='
      

      查询的意思是,找到一个确切名称为 'Session' 的 I(dentifier),后跟一个运算符 '[' 后跟 S(tring),其确切内容是 'cutid',然后是运算符 '] ' 后跟 '='。空白和交织的 cmets 被跳过,因此可以跨越多个行边界。如果您想要任何包含“Sess”的标识符,您可以为该标识符编写一个通配符,例如 I=*Sess*。对于 I(例如 =\.*Sess.*\)或 S 约束,您可以使用正则表达式而不是通配符,或者如果您坚持,也可以仅使用正则表达式执行搜索。

      SCSE 提供 GUI;任何找到的匹配项都显示为单行,单击即可调出包含匹配项的源代码文件。稍微配置一下,再点击一下,您就会在点击时进入您最喜欢的编辑器。

      SCSE 为您的代码库编制索引,因此搜索速度非常快,即使对于庞大的代码库也是如此。它可以处理多种混合语言(例如 PHP、JavaScript 等)。

      【讨论】:

      • 我只花了几分钟在网上找到了该产品。你没有提供链接。产品页面上没有价格,价格页面上也没有价格。为什么基本信息这么难找!?
      • 我很乐意提供一个网络链接,但 SO“版主”不喜欢我发布网站链接。向他们抱怨让你去找它;我认为这很愚蠢,但这不是我的选择。如需下载,请尝试“支持”下的“下载”链接。
      猜你喜欢
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 2021-02-02
      相关资源
      最近更新 更多