Eclipse只能在字符串文字中找到结果吗?

asm*_*ier 5 eclipse replace

让我们假设我有以下Java代码:

public String foo()
{
  // returns foo()
  String log = "foo() : Logging something!"
  return log;
}
Run Code Online (Sandbox Code Playgroud)

我可以在Eclipse中搜索foo()仅在字符串文字中出现,但不能在代码中的任何其他地方进行搜索吗?所以在这里的示例中,Eclipse应该只找到第三个出现foo(),而不是第一个出现,它是一个函数名而不是第二个,它是一个注释.

编辑:简单的正则表达式将无法正常工作,因为它们会foo()在一行中找到

String temp = "literal" + foo() + "another literal"
Run Code Online (Sandbox Code Playgroud)

但这foo()是函数名称而不是字符串文字.

mdr*_*drg 3

你可以这样尝试:

"[^"\n]*foo\\(\\)[^"\n]*"
Run Code Online (Sandbox Code Playgroud)

您必须转义括号,而且此正则表达式不匹配新行或附加引号,这可以防止错误匹配。