Foxtable(狐表)用户栏目专家坐堂 → 求正则表达式


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

主题:求正则表达式

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


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

参考

 

Dim s1 As String = "5号循环水泵"
Dim s2 As String = "6号循环水泵"
Dim count As Integer = 0
For Each s As String In s1
    If s2.Contains(s) = True Then
        count += 1
    End If
Next

msgbox(count)
msgbox(count/s1.length)


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


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

以下是引用utcxray在2019/1/22 15:19:00的发言:
有点甜,在吗?能把你在楼上的帖子逻辑结合我的代码做个例子吗?循环转不出来了。目的:对于“专利交易库“中“交易要求”,“专利名称”做匹配
[此贴子已经被作者于2019/1/22 15:21:20编辑过]

 

具体实例上传上来测试。


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


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

没看懂你例子的意思。你哪些字符和哪些字符比较得到相似度?

 

表A第一列、第二列,相似度比较,参考下面代码,如

 

For Each dr As DataRow In DataTables("表A").Select("")
    Dim s1 As String = dr("第一列")
    Dim s2 As String = dr("第二列")
    If s2.Contains(s1) Then
        dr("第三列") = "完全匹配"
    Else
        Dim count As Integer = 0
        For Each s As String In s1
            If s2.Contains(s) = True Then
                count += 1
            End If
        Next
        dr("第三列") = count/s1.length
    End If
Next


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


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

请具体说明,你要比较哪些数据。什么数据和什么数据比较。

 

提取哪些行的【交易要求】?提取全部交易要求?然后循环每一行专利,比较匹配的字符个数?

 

请好好看懂之前的例子,自行改写一下代码啊。


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


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

For Each dr As DataRow In DataTables("表A").Select("")
    Dim s1 As String = dr("第一列")
    Dim s2 As String = "这里写你的所有的交易要求"
    If s2.Contains(s1) Then
        dr("第三列") = "完全匹配"
    Else
        Dim count As Integer = 0
        For Each s As String In s1
            If s2.Contains(s) = True Then
                count += 1
            End If
        Next
        dr("第三列") = count/s1.length
    End If
Next


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


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

比如代码

 

For Each dr As DataRow In DataTables("专利交易库").Select("专利名称 is not null")
    Dim s1 As String = dr("专利名称")
    Dim s2 As String = "用于门的电泳技术和喷涂技术,电镀喷涂之类的工艺--授权未缴费发明"
    If s2.Contains(s1) Then
        dr("相似度") = 1
    Else
        Dim count As Integer = 0
        Dim str As String = ""
        For Each s As String In s1
            If s2.Contains(s) = True Then
                count += 1
                str &= s
            End If
        Next
        dr("相似度") = format(count/s2.length, "0.00") & " " & str
    End If
Next


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


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

把口水字去掉后即可,比如

 

【一种用于汽车制造的高效打磨装置】其中,一种、用于、的、高效 等字符,替换成空白,最后得到

 

【汽车制造打磨装置】,然后,你做一个【口水字】的表,添加删除口水字即可。


 回到顶部