TOPIC: Extracting City Names

I need to extract city names and State names into separate fields for each, from text such as the example below. As you can see, there are sometimes extra commas and city names can be up to 4 words. Can this be done?