如何用数字对正则表达式德国街道地址(中缀)
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*$)
通过在第二个捕获组中不允许使用空格,它不会太早匹配数字17
或545
。
编辑:在your own demo上看到更详细的示例列表后,以下正则表达式将与您的测试用例的完整集合匹配:
(?<street>[\S \t]+?) ?(?<number>\d[\d\w-\/ ]*?$)
另一答案
我自己找到了一个答案:
我自己https://regex101.com/r/2WT48R/6
以上是关于如何用数字对正则表达式德国街道地址(中缀)的主要内容,如果未能解决你的问题,请参考以下文章
如何用正则表达式匹配出如下代码中的IP地址跟IP地址归属地?