0

cygwin で grep を使用して、テキスト ファイル内の電話番号を検索したいと考えています。番号は0570-2770521で、total コマンドを として正規表現 "[0-9]{4}-[0-9]{7}" を使用しましgrep "[0-9]{4}-[0-9]{7}" ./list.txtたが、機能しませんでした。それから私はに変わりましたgrep "[0-9]\{4\}-[0-9]\{7\}" ./list.txt、それはうまくいきます!

しかし、{} はメタ文字であるため、それらをエスケープすると単なるリテラル文字になり、[0-9] の一致時間をどのように表現できるでしょうか?

それは私の理解が間違っているのでしょうか?誰かが混乱を説明するのを手伝ってくれることを願っています、事前に感謝します!

よろしくお願いします!

4

1 に答える 1

1

man re_format:

廃止された (「基本的な」) 正規表現は、いくつかの点で異なります。[...] 境界の区切り文字は\{\}で、{}単独で通常の文字です。

egrep拡張された正規表現には (または同等に) を使用grep -Eしてください。

于 2015-07-09T02:27:06.483 に答える