Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 德语地址-正则表达式_C#_Regex - Fatal编程技术网

C# 德语地址-正则表达式

C# 德语地址-正则表达式,c#,regex,C#,Regex,我有一个webcall,它以字符串形式为我提供以下回调: ZIPCODE | CITY | STREET NR | , |Phone Number with (Tel.) on the beginning 例1: 83661 Lenggries Marktstr. 14, Tel. 08042 91860 我想问一下regex专业人士,是否有可能将他们分成小组? 我目前最好的尝试是: ([0-9]{5})(\s[a-zA-Z].+)(\s[a-zA-Z].+)(\s.*)(\s.[0-9]*

我有一个webcall,它以字符串形式为我提供以下回调:

ZIPCODE | CITY | STREET NR | , |Phone Number with (Tel.) on the beginning
例1:

83661 Lenggries Marktstr. 14, Tel. 08042 91860
我想问一下regex专业人士,是否有可能将他们分成小组? 我目前最好的尝试是:

([0-9]{5})(\s[a-zA-Z].+)(\s[a-zA-Z].+)(\s.*)(\s.[0-9]*)(\s.[0-9]*)
其结果是:

  • 83661
  • 冷饮
  • Marktstr。十四,
  • 电话
  • 08042
  • 91860
  • 这适用于上述示例,但不是一个稳定的正则表达式,例如:

    例2:

    83620 Feldkirchen-Westerham Aiblinger Str. 7, Tel. 08063 8562
    
    结果:

  • 83620
  • 费尔德基兴·韦斯特汉姆·艾布林格
  • 街7号
  • 电话
  • 08063
  • 8562
  • 也许有人能帮我解决这个问题,我不知道怎么解决。数据也不能以任何其他格式提供:(

    提前致以问候和感谢 Matthias

    试试这个:

    ^(\d{5})\s*([a-zA-Z].+)(?=\b\d+,)(\d+).*电话号码([\d]+)$

    参见PCRE中的

    请参见C#Code

    尝试以下方法:

    ^(\d{5})\s*([a-zA-Z].+)(?=\b\d+,)(\d+).*电话号码([\d]+)$

    参见PCRE中的


    请参见C#Code

    如果城市和地址都包含空格怎么办?您如何知道前者的终点和后者的起点?这是不可能的,因为城市和街道可能包含空格(正如@silkfire所写).理论上,您可以使用邮政编码数据库来查找城市名称,但即使这种方法在实践中也无法很好地工作,因为如果城市包含用户输入,则可能包含打字错误或其他数据(例如“海德堡-维布林根”).还要注意,有些地址没有街道名称,街道名称没有编号,街道名称部分包含编号(曼海姆语)等。正则表达式似乎不适合地址验证。城市匹配不起作用的示例:美国缅因州法兰克福。如果城市和地址都包含空格怎么办?你怎么知道前者结束,后者开始?这不可能,因为城市和街道可能包含空格(正如@silkfire所写).理论上,您可以使用邮政编码数据库来查找城市名称,但即使这种方法在实践中也无法很好地工作,因为如果城市包含用户输入,则可能包含打字错误或其他数据(例如“海德堡-维布林根”)。还请注意,有些地址没有街道名称,街道名称没有数字,街道名称部分包含数字(在曼海姆语中)等。正则表达式似乎不适合进行地址验证。城市匹配不起作用的示例:法兰克福美茵河畔