To add to what Richard has said ... Email validation is pretty complicated, and your regex is far too simplistic - it allows illegal addresses such as "@." and doesn't find legal addresses such as "a.b@x.com", "a@x.co.uk", "a@x-y.com", and so forth.
To "find an email address" somewhere in a bunch of text is complicated, even if you allow all the valid characters in such an address - which can include spaces, quote and double quote, backslash, ... and even '@' can be part of your local or domain section if quoted!
Email address - Wikipedia[
^]
Why complicated? Because emails addresses are text, and even if you stick to a subset of valid characters (and that'll annoy a lot of people) it's next to impossible to tell is any given chunk of text that includes an '@' somewhere in it is actually intended to be an email address reliably.
I'd strongly suggest that you take a close look at your input file and see if you can identify anything which identifies "this is an email address" before the address and "that was an email address" after it:
Email: me@mycompany.com
For example makes it easier: you have a lead in "Email: ", and a newline to terminate.
Without that, you are going to get a lot of false positives, as well as bad detecs of partial email addresses.