Dim str As String = "北京市北京市通州区北苑街道日光清城1号楼3单元203(000000)"
Dim ary() As String = {"^", "(省|自治区)", "(市|盟)", "(县|区|旗)", "(镇|街)", "(村|会)", "$"}
For i As Integer = 0 To 5
For j As Integer = i To 0 Step -1
Dim mc = System.Text.RegularExpressions.Regex.Match(str, "(?<=" & ary(j) & ").+" & ary(i+1))
If mc.success Then
Output.Show(ary(i+1) & ":" & mc.value)
Exit For
End If
Next
Next
需要得到的结果是:
省份:北京
城市:北京市
区县:通州区
详址:北苑街道日光清城1号楼3单元203(000000)
这种勉强可以,但如果是直辖市或者没有规范填写省市区的,就解析不出来。
如何做到解析直辖市
还有如何解析不规范的省市区。比如就写个北京通州区某某某
或者通州区某某某
或者北京通州某某某?