Normally I would just construct the regex my self, but this one seems a bit complex, and if someone else has already solved it, I'd rather go with a proven solution. That said, I need a regex (or whatever) to split up a name string into its first and last halfs. Any middle name/names would be considered part of the first name, as would titles like Junior, Senior, Doctor, etc. Worse -- since some last names have spaces in them, I can't just split on the last space.
Examples of name strings that are considered legit, I italized the last names for clarity:
- Catherine Zeta-Jones
- Jean Claude Van Damme
- George W. Bush, Jr
- Randal L. Schwartz
- joe schmoe
Is this hopeless? Is there a module? Is there even a good formula or algorithm? Should I just split on the (num spaces/2)+1 space?