我正在尝试使用
python创建一个匹配美国州缩写的正则表达式.
缩写可以采用以下格式:
CA Ca
字符串可以是:
Boulder,CO 80303 Boulder,Co Boulder CO ...
这就是我所拥有的,显然效果不佳.我对正则表达式并不是很好,谷歌没有太多.
pat = re.compile("[A-Za-z]{2}") st = pat.search(str) stateAbb = st.group(0)
解决方法
一种简单可靠的方法是列出所有状态:
states = ['IA','KS','UT','VA','NC','NE','SD','AL','ID','FM','DE','AK','CT','PR','NM','MS','PW','CO','NJ','FL','MN','VI','NV','AZ','WI','ND','PA','OK','KY','RI','NH','MO','ME','VT','GA','GU','AS','NY','CA','HI','IL','TN','MA','OH','MD','MI','WY','WA','OR','MH','SC','IN','LA','MP','DC','MT','AR','WV','TX'] regex = re.compile(r'\b(' + '|'.join(states) + r')\b',re.IGNORECASE)
如果您想要非美国州,请使用其他州名单.