以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于字段数据分割  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133536)

--  作者:裴保民
--  发布时间:2019/4/16 8:41:00
--  关于字段数据分割
怎样将字段中的数据分割成几个字段呢?比如用一个地址列:原数据是“***省***市***区**********”将他分割成“省”、“市”、"区"、“地址”四个字段,分别将其内容填入到相应的字段呢?并将元数据的***省***市***区删除掉。
--  作者:有点甜
--  发布时间:2019/4/16 9:09:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=113910&skin=0

 


--  作者:裴保民
--  发布时间:2019/4/16 9:50:00
--  
怎么给对应的字段赋值,并将元数据的***省***市***区删除掉呢?


还有就是第一次出现的“区”是属于哪个区的可是有的是小区的名字怎么区分开呢?
[此贴子已经被作者于2019/4/16 10:12:03编辑过]

--  作者:有点甜
--  发布时间:2019/4/16 10:15:00
--  

Dim str As String = "福建省泉州市惠安县山霞镇田边村委会159号"
\'Dim str As String = "上海市aa区bb街cc路xx号"
Dim ary() As String = {"^", "(省|市|自治区)", "(市|区)", "县", "(镇|街)", "(村|会)", "$"}
Dim nr = Tables("表a").addnew
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
\'            msgbox(ary(i+1) & ":" & mc.value)
            If i=0 Then
                nr("第一列") = mc.value.remove(mc.value.length-1)
            End If
            If i=1 Then
                nr("第二列") = mc.value.remove(mc.value.length-1)
            End If
            Exit For
        End If
    Next
Next


 


--  作者:裴保民
--  发布时间:2019/4/16 10:33:00
--  
甜老师怎么区分区域和小区的名字的区呢?
还有就是删除原数据中的省、市、区|县的部分字段呢?

--  作者:有点甜
--  发布时间:2019/4/16 10:38:00
--  
请举例说明你的问题,输入什么字符,最后输出什么字符?
--  作者:裴保民
--  发布时间:2019/4/16 10:50:00
--  
比如 “河北省石家庄市长安区翟营北大街387号万国龙小区32号楼2单元302室”、“河北省石家庄裕华路联强小区12号楼2单元502室”、“河北省石家庄裕华区裕华路路306号”

第二个没有区域的区只有小区的区 ,第三个没有小区的区,像这类的问题怎么处理呢?

还有就分割的数据怎么没有省、市、区或县的字符呢?
[此贴子已经被作者于2019/4/16 11:13:52编辑过]

--  作者:有点甜
--  发布时间:2019/4/16 11:18:00
--  

 

你这种没有省、市分割的,无法直接提取。必须要做一个【省市区】的表,然后循环每一行,判断你的地址是否包含那些省、市、区,这样获取才行。


--  作者:裴保民
--  发布时间:2019/4/16 11:23:00
--  
怎样删除原数据中的省、市、区|县的部分字段呢?也就是说已经提出的部分
--  作者:有点甜
--  发布时间:2019/4/16 11:30:00
--  

Dim str As String = "福建省泉州市惠安县山霞镇田边村委会159号"
\'Dim str As String = "上海市aa区bb街cc路xx号"
Dim ary() As String = {"^", "(省|上海市|北京市|重庆市|天津市|自治区)", "(市|区)", "县", "(镇|街)", "(村)", "$"}
Dim nr = Tables("表a").addnew
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
            msgbox(ary(i+1) & ":" & mc.value.remove(mc.value.length-1))
            If i=0 Then
                nr("第一列") = mc.value.remove(mc.value.length-1)
            End If
            If i=1 Then
                nr("第二列") = mc.value.remove(mc.value.length-1)
            End If
            Exit For
        End If
    Next
Next