我正在尝试匹配包含街道和号码的街道地址。
我需要表达式匹配街道名称的单词,后跟数字。
例如我想匹配“somestreet 25”,“some other street 23”,“a-third street 190”,但不是“a_fourth street 67”。
我正在尝试一小时,但我对正则表达式的评价甚至不差。
到目前为止我所得到的只是/^[a-zA-Z]+([\s][a-zA-Z]+)([\s][0-9]){1,4}$/
但不用说,它不起作用。
---编辑---
据我所知,没有标准的,全球性的街道地址写法,正则表达式实际上不足以涵盖全球范围内的问题,但该网站适用于当地餐馆,所有我想要的地址看起来可能是一个地址(即便如此,没有地图和电话验证,它仍然可能是假的)。
然而,在发送任何内容之前,任何时候都会进行人工验证,而且这是一个相当小的社区,因此送货人和餐馆老板都知道订单是否是假的。
我想要的只是让他们不要被愚蠢的地址发送垃圾!@#$字符在地址中,并且具有可靠的可读地址格式,以便他们使用。
答案 0 :(得分:3)
这应该适用于您的示例:
/^[a-zA-Z]([a-zA-Z-]+\s)+\d{1,4}$/
答案 1 :(得分:1)
你过分复杂了一点。这是一个不区分大小写的表达式,用于查找带有连字符和空格的字母,后跟数字,符合您所声明的标准。
/^([a-z- ]+)\s+([0-9]+)$/i
但是我呢?我住在30th Ave.
顺便说一下,我在最后使用[0-9]+
代替了一个或多个数字,而不是{1,4}
范围。如果您的数量不能超过4,请将其切换回范围{1,4}
。
答案 2 :(得分:1)
这样做
/^([A-Z][-A-Z ]+)\s+(\d+)$/i
我认为街道名称没有规律的形成。所以正则表达式不适用于此