-P オプションを使用して、電話番号のリストを grep しています。私の結果はこのオプションで優れていますが、リストはそれなしでは返されません。grepのマニュアル ページには、 -P を使用すると「PATTERN が Perl の正規表現として解釈される」と記載されています。私は Perl を知らず、grep と正規表現を学習しているだけなので、これはあまり意味がありません。
簡単な説明はありますか?
で使用できる正規表現のセットは 3 つありますgrep
。
いくつかの概念は、これらすべての間で同じです。たとえば、[a-z]
orなどの文字クラス[^0-9]
はすべて同じです。一方、(
vsの意味、またはorまたはに特別な意味がある\(
かどうかは、正規表現のクラスによって異なります。|
+
|
これは大きなトピックです。SO回答で簡単にカバーするには大きすぎます。詳細については、Jeff Freidl のMastering Regular Expressionsブックと正規表現の違いに関するドキュメントを参照してください。
-P
オプションを指定しないgrep
と、パターンは基本的な正規表現として解釈されます。たとえば、.
、?
、|
. 正規表現を適応させる必要があります。