gpt4 book ai didi

java - 用于将德国地址拆分为多个部分的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:08 26 4
gpt4 key购买 nike

晚上好

我正在尝试通过 Java 将德国地址字符串的各个部分拆分成多个部分。有谁知道正则表达式或图书馆可以做到这一点?像下面这样拆分它:

Name der Straße 25a 88489 Teststadt

名称 der Straße|25a|88489|Teststadt

测试字符串。 3 88489 Beispielort (Großer Kreis)

Teststr.|3|88489|Beispielort (Großer Kreis)

如果缺少邮政编码或城市等部分,系统/正则表达式仍然有效,那就太完美了。

是否有任何正则表达式或库可以用来存档?

编辑:德国地址规则:
街道:字符、数字和空格
房屋编号:数字和任何字符(或空格),直到一系列数字(zip)(至少在这些示例中)
zip :5位数字
地点或城市:其余部分也可能带有空格、逗号或大括号

最佳答案

我遇到了一个类似的问题,稍微调整了这里提供的解决方案,并找到了这个也有效的解决方案,但 (imo) 更容易理解和扩展:

/^([a-zäöüß\s\d.,-]+?)\s*([\d\s]+(?:\s?[-|+/]\s?\d+)?\s*[a-z]?)?\s*(\d{5})\s*(.+)?$/i

这里有一些 example matches .

它还可以处理缺失的街道号码,并且可以通过向字符类添加特殊字符轻松扩展。

[a-zäöüß\s\d,.-]+?                         # Street name (lazy)
[\d\s]+(?:\s?[-|+/]\s?\d+)?\s*[a-z]?)? # Street number (optional)

之后,必须有邮政编码,这是唯一绝对必要的部分,因为它是唯一不变的部分。邮政编码后的所有内容都被视为城市名称。

关于java - 用于将德国地址拆分为多个部分的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com