This really depends on whether your "logical parts" are delimited in some way such that you can id each part separately. I doubt you can assume a comma "," as a delimiter as address components may themselves contain commas (e.g the name of a firm/business). Additionally you may have issues with data cleanliness - that is commas may be missing, or in the wrong place or whatever.
If you have delimited data your job is simplified somewhat, in that you'll be able to id each field independently. However that's still not straightforward. If you do not have delimited data, it's going to be much harder. Anyway, identification of fields will probably be along these lines:
1) Postcode (there's a well known regex for this - however again you may need to cope with malformed or invalid postcodes or typos)
2) Country & town, city - you can get these with a dictionary of UK towns & cities. Have a Google.
3) Villages - harder, but again a dictionary will get you 98% of the way there.
4) Streets, Roads etc: can't really use a dictionary for this. You'll need to do some kind of recognition based on keywords - if the field ends in street, road, lane or whatever. However there are a lot of these. You may find a bayesian approach works well for this.
5) Company name, department etc. Harder still. Again certain keywords can flag these (e.g "ltd") but I'm guessing most of your entries are not guaranteed to include legal entity. And departments can be anything.
Also - what about people names? can you recognise those?
In short, this is quite a big and involved job to get done correctly. There is no easy/simple answer.
BTW - if you access to the PAF that might help you: http://www.royalmail.com/portal/rm/jump2?mediaId=400085&catId=400084&campaignid=paf_redirect
But that still wont help you with departments, business or people names.