匹配 Street 123 格式地址的正则表达式

Regex to match addresses of Street 123 format

希腊的街道格式为 Street 123,我需要一个 Java 正则表达式来匹配它。我想出的正则表达式对我来说看起来是正确的,但它不起作用,而且我并不是真正的正则表达式专家。有人建议 Java 的正则表达式可能与 Java 脚本不同,我也不是他们的专家,所以有人可以帮忙吗?我只需要一个词,然后是 1 个空格,然后是一个 3 位数字(最大)。所以例如它应该匹配

但不匹配 Street123Street1234Street 1234

这是我的正则表达式:

ADDRESS_REGEX = "[A-Za-z]+\s[0-9]{3}+";

匹配1-3位数字和单个space:

\b[A-Za-z]+\h\d{1,3}\b
  • \b一个单词边界
  • [A-Za-z]+ 匹配 1+ 个字符 A-Za-z
  • \h匹配一个水平的白色space字符
  • \d{1,3}匹配1-3位数字
  • \b一个单词边界

看到一个regex demo

在Java

String regex = "\b[A-Za-z]+\h\d{1,3}\b";

这个版本是正确的:

^[A-Za-z]+\s[0-9]{1,3}$

UPD:有时使用 \h 而不是 \s 更好(因为 \s 也与换行符匹配)

^[A-Za-z]+\h[0-9]{1,3}$

所以更正确。