正则表达式匹配城市和州的地址

时间:2017-02-03 19:50:07

标签: regex

我正在尝试创建一个表达式来匹配地址中的城市和州名称,例如

100 Hall of Justice
1701 Farnam St.
Omaha
Nebraska
68183  United States

3208 Sheridan Ct.
Lincoln
Nebraska
68506

3710 S 192nd St
Omaha
Nebraska
68130  United States

IL Court of Appeals 2nd District
55 Symphony Way
Elgin
Illinois
60120  United States

正如您所看到的,城市和州名称并不总是出现在地址内的同一位置(节点),但它们总是在整个地址之间的每一行显示为一个单词

我是否可以在这种情况下使用ReGEX来匹配城市和州名称而不管它们出现在地址中的哪个位置?

2 个答案:

答案 0 :(得分:1)

在最简单的情况下,以下正则表达式模式将提供预期的城市和州名称

(\w+)\n(\w+)\n\d+(\s+United States)?\n?$

https://regex101.com/r/U50ZbJ/3

(\w+)\n(\w+) - 分别与 city 匹配的两个捕获组

答案 1 :(得分:0)

根据@ RomanPerekhrest的回答,现在它将匹配城市名和州名中的两个(或更多)单词。

([a-zA-Z ]+)\n([a-zA-Z ]+)\n\d+(\s+United States)?\n?$