0

-P オプションを使用して、電話番号のリストを grep しています。私の結果はこのオプションで優れていますが、リストはそれなしでは返されません。grepのマニュアル ページには、 -P を使用すると「PATTERN が Perl の正規表現として解釈される」と記載されています。私は Perl を知らず、grep と正規表現を学習しているだけなので、これはあまり意味がありません。

簡単な説明はありますか?

4

2 に答える 2

1

で使用できる正規表現のセットは 3 つありますgrep

  • BRE — 基本的な正規表現
  • ERE — 拡張正規表現
  • PCREPerl互換の正規表現

いくつかの概念は、これらすべての間で同じです。たとえば、[a-z]orなどの文字クラス[^0-9]はすべて同じです。一方、(vsの意味、またはorまたはに特別な意味がある\(かどうかは、正規表現のクラスによって異なります。|+|

これは大きなトピックです。SO回答で簡単にカバーするには大きすぎます。詳細については、Jeff Freidl のMastering Regular Expressionsブックと正規表現の違いに関するドキュメントを参照してください。

于 2012-09-01T23:18:12.373 に答える
0

-Pオプションを指定しないgrepと、パターンは基本的な正規表現として解釈されます。たとえば、.?|. 正規表現を適応させる必要があります。

于 2012-09-01T19:25:17.220 に答える