Foxtable(狐表)用户栏目专家坐堂 → [求助]正则提取单元格字符串


  共有2865人关注过本帖树形打印复制链接

主题:[求助]正则提取单元格字符串

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 22:17:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:正则提取单元格1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 23:34:00 [显示全部帖子]

1、相同的单位名称肯定覆盖;例子没问题。

 

2、第二组代理人修改代码

 

'''
If e.DataCol.name = "诉讼参加人" Then
    Dim str As String = e.NewValue
    If str > "" Then
        Dim ary() As String = str.Replace("被告", "@").split("@")
        For i As Integer = 0 To ary.length-1
            str = ary(i)
            If str > "" Then
                msgbox(str)
                Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=^).*?(?=。)")   '提取被告单位名称
                Dim mc1 = System.Text.RegularExpressions.Regex.Matches(str, "(?<=法定代表人).*?(?=。)")   '提取被告法定代表人
                Dim mc2 = System.Text.RegularExpressions.Regex.Matches(str, "(?<=委托代理人).*?(?=。)")   '提取被告委托代理人
               
                Dim s As String = mc(0).value
                Dim dr = DataTables("当事人信息表").Find("[单位名称] = '" & s.split(",")(0) & "'")      '到信息表去找
                If dr Is Nothing Then
                    dr = DataTables("当事人信息表").AddNew
                End If
               
                dr("单位名称") = s.split(",")(0)
                dr("住所地") = s.split(",")(1)
                s = mc1(0).value
                dr("法定代表人") = s.split(",")(0)
                dr("职务") = s.split(",")(1)
                s = mc2(0).value
                dr("委托代理人1") = s.split(",")(0)
                dr("代理人单位1") = s.split(",")(1)
                s = mc2(1).value
                dr("委托代理人2") = s.split(",")(0)
                dr("代理人单位2") = s.split(",")(1)
            End If
        Next
       
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/16 11:59:00 [显示全部帖子]

1、判断一下

 

If mc2.count >= 2 then

    s = mc2(1).value
    dr("委托代理人2") = s.split(",")(0)
    dr("代理人单位2") = s.split(",")(1)

End If

 

2、

 

Dim ary() As String = str.Replace("被告", "@").split("@")

 

改成

 

Dim ary() As String = str.Replace("上诉人(一审被告)", "@").replace("上诉人(一审被告)", "@").split("@")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/16 15:15:00 [显示全部帖子]

1、第一个委托人,属于【高新技术产业开发区管理委员会】的;第二个委托人,属于【市公安局高新技术产业开发区分局】的,分别是各自【第一个委托人】

 

2、上传实例说明问题。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/16 16:51:00 [显示全部帖子]

'''
If e.DataCol.name = "诉讼参加人" Then
    Dim str As String = e.NewValue
    If str > "" Then
        Dim ary() As String = str.Replace("被上诉人(一审被告)", "@").replace("上诉人(一审被告)", "@").split("@")
       
        For i As Integer = 0 To ary.length-1
            str = ary(i)
            If str > "" Then
                'msgbox(str)
                Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=^).*?(?=。)")   '提取被告单位名称
                Dim mc1 = System.Text.RegularExpressions.Regex.Matches(str, "(?<=法定代表人).*?(?=。)")   '提取被告法定代表人
                Dim mc2 = System.Text.RegularExpressions.Regex.Matches(str, "(?<=委托代理人).*?(?=。)")   '提取被告委托代理人
               
                Dim s As String = mc(0).value
                Dim dr = DataTables("当事人信息表").Find("[单位名称] = '" & s.split(",")(0) & "'")      '到信息表去找
                If dr Is Nothing Then
                    dr = DataTables("当事人信息表").AddNew
                End If
               
                dr("单位名称") = s.split(",")(0)
                dr("住所地") = s.split(",")(1)
                s = mc1(0).value
                dr("法定代表人") = s.split(",")(0)
                dr("职务") = s.split(",")(1)
               
                If mc2.count >= 1 Then
                    s = mc2(0).value
                    dr("委托代理人1") = s.split(",")(0)
                    dr("代理人单位1") = s.split(",")(1)
                End If
                If mc2.count >= 2 Then
                    s = mc2(1).value
                    dr("委托代理人2") = s.split(",")(0)
                    dr("代理人单位2") = s.split(",")(1)
                End If
               
               
                dr("更新时间") = Date.now
               
            End If
        Next
       
    End If
End If

 回到顶部