Dim 省,值1,值2,值3,值4,市,区,地址 As String
Dim 收货地址 As String="北京市北京市东城区"
Dim Values1() As String
Values1 = DataTables("省市区").GetComboListString("市简称").split("|")
For Index1 As Integer = 0 To Values1.Length - 1
If 收货地址.Contains(Values1(Index1)) Then
Dim Values0() As String
Select Case Values1(Index1)
Case "济源","仙桃","潜江","天门","神农架","东莞","中山","琼海","儋州","五指山","文昌","万宁","东方","定安","屯昌","澄迈","临高","白沙","昌江","乐东","陵水","保亭","琼中","西南中沙群岛办事处","石河子","阿拉尔","图木舒克","五家渠"
值1=""
值2=""
值3=""
值4=""
Dim p As String = "([省市区县乡镇]|特别行政区|自治区|地区|盟|旗|群岛|街道|街)"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(收货地址)
Dim Int As Integer
For Each a As String In str
int=int+1
Select Case int
Case 1
值1=a
Case 2
值1=值1 & a
Case 3
值2=a
Case 4
值2= 值2 & a
Case 5
值3=a
Case 6
值3=值3 & a
Case Else
值4=值4 & a
End Select
Next
If int>7 Then
Output.Show("正常的省:" & 值1 & ";市:" & 值2 & ";区:" & 值3 & ";地址:" & 值4)
Else
MessageBox.Show("请加入省市区书写(如:上海市上海市长虹区长虹大道759号)或者手动添加省市区")
End If
Case Else
Values0 = DataTables("省市区").GetComboListString("区","[市简称]= '" & Values1(Index1) &"'").split("|")
For Index0 As Integer = 0 To Values0.Length - 1
If 收货地址.Contains(Values0(Index0)) Then
省=""
市=""
区=""
地址=""
Dim dr As DataRow = DataTables("省市区").Find("市简称='"& Values1(Index1) &"' and 区='"& Values0(Index0) &"'")
省=dr("省")
市=dr("市")
区=dr("区")
地址=收货地址.Replace(省,"").Replace(市,"").Replace(区,"")
End If
Next
End If
Next
End Select
2020-9-22 10:10:37 改解析收货人以及地址信息
收货地址=解析后
Dim Values1() As String
Values1 = DataTables("省市区").GetComboListString("市简称").split("|")
For Index1 As Integer = 0 To Values1.Length - 1
If 收货地址.Contains(Values1(Index1)) Then
Dim Values0() As String
Select Case Values1(Index1)
Case "济源","仙桃","潜江","天门","神农架","东莞","中山","琼海","儋州","五指山","文昌","万宁","东方","定安","屯昌","澄迈","临高","白沙","昌江","乐东","陵水","保亭","琼中","西南中沙群岛办事处","石河子","阿拉尔","图木舒克","五家渠"
值1=""
值2=""
值3=""
值4=""
Dim p As String = "([市区县乡镇]街道|街)"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(收货地址)
Dim Int As Integer
For Each a As String In str
int=int+1
Select Case int
Case 1
值1=a
Case 2
值1=值1 & a
Case 3
值2=a
Case 4
值2= 值2 & a
Case Else
值3=值3 & a
End Select
Next
省=""
市=""
区=""
地址=""
Dim dr As DataRow = DataTables("省市区").Find("市简称='"& Values1(Index1) & "'")
省=dr("省")
市=dr("市")
区=值2
地址=值3
Case Else
Values0 = DataTables("省市区").GetComboListString("区","[市简称]= '" & Values1(Index1) &"'").split("|")
For Index0 As Integer = 0 To Values0.Length - 1 '000
If 收货地址.Contains(Values0(Index0)) Then
省=""
市=""
区=""
地址=""
Dim dr As DataRow = DataTables("省市区").Find("市简称='"& Values1(Index1) &"' and 区='"& Values0(Index0) &"'")
省=dr("省")
市=dr("市")
区=dr("区")
地址=收货地址.Replace(省,"").Replace(市,"").Replace(区,"")
End If
Next
End Select
End If
Next