0

次のクエリを試していますが、成功しません

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

したがって、私の論理によれば、メソッド呼び出しは 1 つ以上の英数字になります。

   [[:alnum:]]+

ドットが続く

   \. 

1 つ以上の英数字が続く

    [[:alnum:]]+

括弧が続く (void 戻り型のみ)

    \(\)

しかし、このクエリは機能していません。そのようなクエリをどのように書くのですか?

4

2 に答える 2

1

grepいくつかのタイプの正規表現構文を提供します。
あなたのパターンは拡張された構文で書かれて-E
extended-regexpおり、より簡単で優れた構文を持ちperl-regexp、非常に強力です。

  • -E, --extended-regexp
  • -F, --固定文字列
  • -G, --basic-regexp (デフォルト)
  • -P, --perl-正規表現

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

「+」の代わりに「\+」を使用する必要があります。そうしないと、文字「+」と直接一致します。

于 2012-04-16T19:43:42.677 に答える