0

我正在尝试以下查询,但没有成功

    grep -nr "[[:alnum:]]+\.[[:alnum:]]+\(\)" .

因此,根据我的逻辑,方法调用将是一个或多个字母数字字符

   [[:alnum:]]+

后跟一个点

   \. 

后跟一个或多个字母数字字符

    [[:alnum:]]+

后跟括号(仅适用于 void 返回类型)

    \(\)

但是这个查询不起作用。如何编写这样的查询?

4

2 回答 2

1

您需要使用“\+”而不是“+”,否则它将直接匹配字符“+”。

于 2012-04-16T19:43:42.677 回答
1

grep提供了几种类型的正则表达式语法。
您编写的模式是扩展语法,并且-E
extended-regexp具有更简单/更好的语法,并且perl-regexp非常强大。

  • -E,--扩展正则表达式
  • -F,--固定字符串
  • -G, --basic-regexp(默认)
  • -P, --perl-正则表达式

grep -nrE "[[:alnum:]]+\.[[:alnum:]]+\(\)" .  
于 2012-04-16T20:18:57.640 回答