Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_String - Fatal编程技术网

C# 处理属性地址的正则表达式&;分组

C# 处理属性地址的正则表达式&;分组,c#,regex,string,C#,Regex,String,我对正则表达式查询有点问题 我试图将一个地址从字符串解析为单独的变量。我的正则表达式在下面 (?(?[\d]+)(?[A-Za-z])|(?[\d]+)[/](?[A-Za-z0-9]))\s(?[A-Za-z0-9\s]*) 我需要把一个地址写进 街道号码 子编号 街道名称 我成功地实现了以下变化: Goldberg street 60B 街道编号=60B 数字=60 子节点=B 街道名称=戈德堡街 12/a索尔兹伯里路 街道编号=12/a 数字=12 子编号=a 街道名称=索尔兹伯里路 1

我对正则表达式查询有点问题

我试图将一个地址从字符串解析为单独的变量。我的正则表达式在下面

(?(?[\d]+)(?[A-Za-z])|(?[\d]+)[/](?[A-Za-z0-9]))\s(?[A-Za-z0-9\s]*)

我需要把一个地址写进

  • 街道号码
  • 子编号
  • 街道名称
  • 我成功地实现了以下变化:

    • Goldberg street 60B
    • 街道编号=60B
    • 数字=60
    • 子节点=B
    • 街道名称=戈德堡街
    • 12/a索尔兹伯里路
    • 街道编号=12/a
    • 数字=12
    • 子编号=a
    • 街道名称=索尔兹伯里路
    • 12/2索尔兹伯里路
    • 街道编号=12/2
    • 数字=12
    • 子编号=2
    • 街道名称=索尔兹伯里路
    我正在努力解决的一个问题是地址的子编号大于9

    • 20/12索尔兹伯里路
    • 街道号码=12
    • 数字=1
    • 子编号=2
    • 街道名称=索尔兹伯里路
    我似乎无法将第一个号码与街道号码分开

    任何帮助都将不胜感激


    谢谢

    您在
    ?[a-Za-z0-9]

    (?<streetAddress>(?<number>[\d]+)(?<subNumber>[A-Za-z?])|(?<number>[\d]+)[/]?(?<subNumber>[A-Za-z0-9]+))\s(?<street>[A-Za-z0-9\s]*)
    
    (?(?[\d]+)(?[A-Za-z])|(?[\d]+)[/](?[A-Za-z0-9]+)\s(?[A-Za-z0-9\s]*)
    

    不过,请注意,使用regex作为街道地址可能就像击中了一个移动的目标,即有太多可能的组合和格式,我怀疑您是否会得到一致的结果

    您在
    ?[a-Za-z0-9]之后缺少一个加号

    (?<streetAddress>(?<number>[\d]+)(?<subNumber>[A-Za-z?])|(?<number>[\d]+)[/]?(?<subNumber>[A-Za-z0-9]+))\s(?<street>[A-Za-z0-9\s]*)
    
    (?(?[\d]+)(?[A-Za-z])|(?[\d]+)[/](?[A-Za-z0-9]+)\s(?[A-Za-z0-9\s]*)
    

    不过,请注意,使用正则表达式作为街道地址可能就像击中了一个移动的目标,即有太多可能的组合和格式,我怀疑您是否能够获得一致的结果

    您使用的是什么语言?哦,对不起,我以为我标记了c。您使用的是什么语言?哦,对不起,我以为我给它贴上了c#。你的地址完全正确,而且是个移动目标。谢天谢地,它是有限的,因为我“我从一个保持半一致格式的API中提取信息。不幸的是,它们没有将它们公开为sperate值。这真的很有帮助。谢谢你的帮助。需要另一双眼睛:)你的地址完全正确,是一个移动的目标。谢天谢地,它是有限的,因为我正在从一个保持半一致格式的API中提取信息。不幸的是,对我来说,他们没有将它们作为sperate值公开。这将非常有用。谢谢你的帮助。需要另一组眼睛:)