bash で正規表現を使用して、いくつかのメール アドレスを照合しようとしています。現在、式を取得しています
"^[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+(\.[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+)*@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\$"
これは、必要なすべての電子メールに正常に一致しますが、「To:」フィールドを追加しようとすると、一致するものが得られないようで、理由がわかりません。これは、To フィールドを使用した私のコードです。
"^To:\s[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+(\.[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+)*@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\$"
どのAFAIKが「To: bob@bob.co.uk」とうまく一致するはずですが、一致しません:(何かアドバイスはありますか?
コードの例
Reply-To: "service@paypal.com" <service@paypal.com>
To: bob@bob.co.uk
Date: Mon, 21 Jun 2012 21:34:10 -0300
ファイルを検索して配列に追加するために使用されるコード
regex="^[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+(\.[a-zA-Z0-9!#\$%&'\*\+/=?^_\`{|}~-]+)*@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\$"
for i in $(cat mailbox.mbx); do
if [[ $i =~ $regex ]]; then
echo $i
sortarray[$index]=$i
index=$(($index+1))
fi
done