【发布时间】:2013-06-13 06:53:49
【问题描述】:
晚上好,
我正在尝试通过 Java 将德语地址字符串的各个部分拆分为各个部分。有谁知道一个正则表达式或一个库来做到这一点?拆分如下:
Name der Straße 25a 88489 Teststadt
到Name der Straße|25a|88489|Teststadt
或
Teststr. 3 88489 Beispielort (Großer Kreis)
致Teststr.|3|88489|Beispielort (Großer Kreis)
如果缺少邮政编码或城市等部分,如果系统/正则表达式仍然有效,那将是完美的。
是否有任何正则表达式或库可供我存档?
编辑:德国地址规则:
街道:字符、数字和空格
房屋编号:数字和任何字符(或空格),直到一系列数字(zip)(至少在这些示例中)
邮编:5 位数
地点或城市:其余部分也可能带有空格、逗号或大括号
【问题讨论】:
-
对于不熟悉德国地址的人,规则是什么?是“有空格但没有数字的东西”、“有数字但没有空格的东西”、“有数字但没有空格”、“没有数字但没有空格”吗?
-
您不需要正则表达式。只需使用空格分隔符拆分字符串,然后使用条形
|分隔符将其加入 - 但 Oli 上面的评论也是相关的,因为我假设德国地址是用空格分隔的 -
@OliCharlesworth:编辑了帖子
-
@Robbie:我不能只用空格分隔它们,因为街道名称和城市/地点也可以包含空格。
-
不要认为这很容易。有很多带有空格的街道名称。此外,有些人写“25 a”而不是“25a”。我通常会用“,”写我的地址来分隔各个部分。您是否以定义的格式从其他系统获取地址?
标签: java regex split street-address