我正在尝试使用 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:\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 应该与“收件人: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