Foxtable(狐表)用户栏目专家坐堂 → 关于狐表的正则表达式提取


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

主题:关于狐表的正则表达式提取

帅哥哟,离线,有人找我吗?
铜豌豆之首
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
关于狐表的正则表达式提取  发帖心情 Post By:2018/5/1 0:08:00 [只看该作者]

例如(张三20%)  如何把姓名(张三)提取在一列,20%提取放在另外一列
我知道正则可以实现,但是不知如何写,也没相关指南,网上也有相关知识,但不知如何应用到狐表。
强烈建议老师们 编写相关正则表达式说明书

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/1 19:02:00 [只看该作者]

Dim str As String = "张三20%"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"[^0-9\%]+")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str,"[0-9\%]+")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If

 


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


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
  发帖心情 Post By:2018/5/2 10:27:00 [只看该作者]

非常感谢老师的帮助

Dim str As String = "张三20%"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"[^0-9\%]+") 老师所有正则都是这样格式吗(包括提取日期)?只要替换红色的表达式吗?黄色底纹部分的是什么意思
If mc.count >= 1 Then     >= 1是什么意思
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str,"[0-9\%]+")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/2 10:28:00 [只看该作者]

黄色:是固定的语法,不需要理解;

 

红色:不同格式的提取,就修改红色字符即可


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


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
  发帖心情 Post By:2018/5/2 10:37:00 [只看该作者]

>= 1是什么意思
老师帮我看看下面这段有什么问题
2018-02-02 11:48:41 从[搜索引擎,搜索关键词:上海旅行社]:www.baidu.com 进入:www.shzqtrip.com/    提取的数据源样式
If e.DataCol.name = "关键词" Then
    Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"\d{4}-\d{1,2}-\d{1,2}")
    If e.DataRow.IsNull("关键词") Then
        
        e.DataRow("有效日期") = Nothing
    Else
        e.DataRow("有效日期") = mc(0).value
    End If
End If
[此贴子已经被作者于2018/5/2 10:45:05编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/2 10:53:00 [只看该作者]

Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"\d{4}-\d{1,2}-\d{1,2}")

 

改成

 

Dim str As String = e.DataRow("关键词")

Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"\d{4}-\d{1,2}-\d{1,2}")


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


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
  发帖心情 Post By:2018/5/2 11:01:00 [只看该作者]

Dim str As String = "张三20%"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"[^0-9\%]+"
If mc.count >= 1 Then    老师黄色底纹处什么情况下要这样做,同时是什么意思
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str,"[0-9\%]+")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/2 11:04:00 [只看该作者]

必须要加count的判断。如果count=0的话,意思就是没有找到匹配你正则格式的内容,这个时候,就不能提取获得的内容。


 回到顶部
帅哥哟,离线,有人找我吗?
铜豌豆之首
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:91 积分:732 威望:0 精华:0 注册:2016/3/8 11:20:00
  发帖心情 Post By:2018/5/2 11:19:00 [只看该作者]

谢谢老师
2018-02-02 11:48:41 从[搜索引擎,搜索关键词:上海旅行社]:www.baidu.com 进入:www.shzqtrip.com/
老师底纹处分别提取 的正则该如何写图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/2 11:23:00 [只看该作者]

Dim str As String = "2018-02-02 11:48:41 从[搜索引擎,搜索关键词:上海旅行社]:www.baidu.com 进入:www.shzqtrip.com/ "
Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"(?<=搜索关键词:).+?(?=])")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If

mc = System.Text.RegularExpressions.Regex.Matches(str,"(?<=]:).+?(?= 进入)")
If mc.count >= 1 Then
    msgbox(mc(0).value)
End If


 回到顶部