Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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#_Asp.net - Fatal编程技术网

C# 如何解析要保存到数据库中的自由格式地址

C# 如何解析要保存到数据库中的自由格式地址,c#,asp.net,C#,Asp.net,我有一个文本区域,允许用户以自由格式键入地址,如何将用户输入的地址解析为address1、address2、city、state、zip和country并保存到DB中?您无法预测用户将如何输入地址,例如,一些人喜欢使用换行符,其他人喜欢使用逗号 为了省去麻烦,我只需要为每个单独的项目设置单独的字段,或者只需将地址保存为一个完整的字符串。您在这里遇到了很多麻烦 各国之间的地址差别很大,即使在一个国家内部,解析也容易出错。曾经带领一个由2人组成的团队花了数月时间试图解析所有德语地址。到处都是愚蠢的小

我有一个文本区域,允许用户以自由格式键入地址,如何将用户输入的地址解析为address1、address2、city、state、zip和country并保存到DB中?

您无法预测用户将如何输入地址,例如,一些人喜欢使用换行符,其他人喜欢使用逗号


为了省去麻烦,我只需要为每个单独的项目设置单独的字段,或者只需将地址保存为一个完整的字符串。

您在这里遇到了很多麻烦

各国之间的地址差别很大,即使在一个国家内部,解析也容易出错。曾经带领一个由2人组成的团队花了数月时间试图解析所有德语地址。到处都是愚蠢的小特产

不幸的是,我认为这是不可靠的。如果输入是自由形式的,则不符合人们以各种方式输入地址的方式


使用一个像样的输入表单,而不是自由文本输入。

我认为如果使用自由格式,您将无法正确解析它。您可以出于这些目的使用。另一种方法是要求用户按一定顺序输入信息

不要,请使用单独的字段数据输入表单

假设你没有/不能/不会听从这些建议,那么你必须对它是如何输入的做出一些假设。不过,你可以从结尾开始,然后一路努力,这样做会有点聪明

即:

  • 被新行分割
  • 第一行是门牌号和街道
  • 最后一行可以是邮政编码/邮政编码
  • 最后一行可能是城市
  • 第一行和最后一行之间有一行是地址行2、3等
重要
不同国家的地址格式差别很大。如果我是你,你有这个范围,我至少会提供一个国家下拉列表,这样你就可以为每个国家应用不同的解析规则