Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用正则表达式从某一列提取特定数字到另一列


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

主题:[求助]如何用正则表达式从某一列提取特定数字到另一列

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 1:38:00 [显示全部帖子]

参考代码

 

 

Dim str As String = "原约45×34mm,现为36×23mm"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9.]+×[0-9.]+")
msgbox(mc(0).value)
msgbox(mc(1).value)

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 16:44:00 [显示全部帖子]

无法直接打开你的项目。报什么错?贴出你写的代码。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 17:51:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "诊疗经过"
        If e.DataRow.isnull("诊疗经过") Then
            e.DataRow("原大小") = Nothing
            e.DataRow("现大小") = Nothing
        Else
            Dim str As String = e.DataRow("诊疗经过")
            Dim mc1 = System.Text.RegularExpressions.Regex.Matches(str,"(?<=原[\u4e00-\u9fa5]+)([0-9.]+[×*x][0-9.]+)(?=mm|cm)")
            Dim mc2 = System.Text.RegularExpressions.Regex.Matches(str,"(?<=现[\u4e00-\u9fa5]+)([0-9.]+[×*x][0-9.]+)(?=mm|cm)")
            If mc1.count > 0 Then
                e.DataRow("原大小") = mc1(0).value
            Else
                e.DataRow("原大小") = Nothing
            End If
            If mc2.count > 0 Then
                e.DataRow("现大小") = mc2(0).value
            Else
                e.DataRow("现大小") = Nothing
            End If
        End If
End Select

 回到顶部