How do I normalize and transform field text algorithmically
Example SQL Script
For the specific example of parsing a name into it's separate elements see (SO question):
How can I parse the first, middle and last name from a full name field in SQL?

The accepted answer is a fantastic example of how to roll your own algorithm to separate out your names from emails.

Tools
There are some out there, I'll update this answer later when I can have some time to find (or please edit this answer if you have found some)

Note: No matter what method you use, do a sanity check validation of your results, most good methods will be able to accurately parse 90+% of your data, the real trick is how to identify the &lt;10% that have not been correctly parsed  (that can be as simple as doing a sanity check and scanning the results)