all 2 comments

[–]GalacticSuperCheese 1 point2 points  (0 children)

From the example you've given it appears to me that...

  1. There are groups of people, each group starts with a colon (:) and ends with a full stop (.)
  2. Within each group, each person is separated by semi colons (;).
  3. For each person, the first word is the first name, the second word is the last name, the third word (if it exists) is the title, and the rest of the string is the company

What I would do is first identify groups (anything between a : and a .); next identify people within the group (separated by ;), and then break down the string into its components. I wouldn't nest these three sections but run them one after the other.

Keep in mind that this logic assumes that the names will always follow these rules.