If your data is missing a consistent seperator, there's no reliable way to do this. How is your code going to know that this:
123 Some Street SomeCity SomeStateSomPostalCode
Should be:
123 Some Street
SomeCity, SomeState SomePostalCode
and not
123 Some Street SomeCity
SomeState SomePostalCode
??
It can't. At least not without a TON of database work and complete lists of streets, cities, territories, postal codes, blah, blah, blah, ... som your code has something to draw from and recognize the malformed data.
Truthfully, with only 3500 records, it would be faster to go through them by hand and fix them all before importing them than it would to write the code to do it for you and test the crap out of it. You'd STILL have to go through and make sure that data is correct.
This is the problem with collecting data from the user and skilling the validation step at input time. The work you save them suddenly falls entirely on you to fix.