街道地址的正则表达式

I am trying to match street addresses containing the street and number.

I need the expression to match words for the street name, followed by the number.

For example I want to match "somestreet 25", "some other street 23","a-third street 190", but not "a_fourth street 67".

I am trying with it for an hour but I am not even close to good with regex's.

So far all I've got is /^[a-zA-Z]+([\s][a-zA-Z]+)([\s][0-9]){1,4}$/ but needless to say, it is not working.

--- EDIT ---

I understand that there is no standard, global way of writing the street address, and that regular expressions can't really be complicated enough to cover the problem on a global scope, but the site is for a local restaurant, and all I want is the address to look like it could be an address (even then, without map and telephone verification it could still be a fake one).

There will, however, be human verification at all times before anything is sent, and also it is a rather small neighborhood, so both the delivery person and the restaurant owner know if the order is fake or not.

All I want is to keep them from getting spammed with silly !@#$ characters in the address, and have a decent readable address formatting for them to work with.

This should work on your examples:

/^[a-zA-Z]([a-zA-Z-]+\s)+\d{1,4}$/

You've overcomplicated it a little bit. This is a case-insensitive expression that looks for letters with hyphens and spaces, followed by numbers, matching your stated criteria.

/^([a-z- ]+)\s+([0-9]+)$/i

But what about me? I live on 30th Ave.

By the way, I used [0-9]+ for one or more numbers at the end, instead of your {1,4} range. If you must not have more than 4, then switch it back to your range {1,4}.

This will do

 /^([A-Z][-A-Z ]+)\s+(\d+)$/i

I think street names have no regular formation. So Regular Expression is not applicable for this