grepのデフォルトの正規表現では、電子メールの一致正規表現は何ですか?

grepのデフォルトの正規表現では、電子メールの一致正規表現は何ですか?

テキストファイルを作成し、その中にいくつかの電子メールアドレスを入れました。それから私はそれらを見つけるために努力します。それは動作します:

# pattern="^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,}"
# grep -E $pattern regexfile

ただし、拡張正規表現の-Eオプションを保持する限り。 -Eオプションなしでgrepを使用するには、上記の正規表現をどのように変更する必要がありますか?

答え1

電子メールアドレスを一致させることは、現在持っているものよりはるかに困難です。バラより 「正規表現をマスターする」本から抜粋

*ただし、あなたの質問に答えるには、基本正規表現の数量子は、または \+\{m,n\}バックスラッシュを含む)のいずれかでなければなりません。

pattern='^[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.[a-z]\{2,\}'
grep "$pattern" regexfile

パターン変数を引用する必要があります。

関連情報