如何用数字对正则表达式德国街道地址(中缀)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用数字对正则表达式德国街道地址(中缀)相关的知识,希望对你有一定的参考价值。

我有这两个地址:

Straße des 17 Juni 122a
Str. 545 3

请参见https://regex101.com/r/2WT48R/5

我需要过滤街道和号码。

我想要的输出是:

streets = [Straße des, Str. ]
numbers = [17 Juni 122a, 545 3]

这是我的正则表达式:

(?<street>[\S ]+?)\s*(?<number>\d+[\w\s\/-]*)$

输出应类似于:

streets = [Straße des 17 Juni, Str. 545]
numbers = [122a, 3]
答案

看起来正则表达式的“数字”部分没有空格-您可以使用它来消除卡在第二个捕获组中的多余字符。

(?<street>[\S ]+)\s(?<number>\d+\S*$)

通过在第二个捕获组中不允许使用空格,它不会太早匹配数字17545

Demo

编辑:在your own demo上看到更详细的示例列表后,以下正则表达式将与您的测试用例的完整集合匹配:

(?<street>[\S \t]+?) ?(?<number>\d[\d\w-\/ ]*?$)

Demo

另一答案

我自己找到了一个答案:

我自己https://regex101.com/r/2WT48R/6

以上是关于如何用数字对正则表达式德国街道地址(中缀)的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式匹配出如下代码中的IP地址跟IP地址归属地?

如何用正则表达式验证用户名

批处理如何用正则提取字符串中间的数字,和结尾的数字

如何用正则表达式匹配括号中的内容。

如何用正则表达式 匹配正确的imei串号呢!imei格式:由0-9数字组成的15或者17位的串号?

如何用正则表达式匹配括号中的内容,不包含括号