以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于狐表的正则表达式提取  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118374)

--  作者:铜豌豆之首
--  发布时间:2018/5/1 0:08:00
--  关于狐表的正则表达式提取
例如(张三20%)  如何把姓名(张三)提取在一列,20%提取放在另外一列
我知道正则可以实现,但是不知如何写,也没相关指南,网上也有相关知识,但不知如何应用到狐表。
强烈建议老师们 编写相关正则表达式说明书
--  作者:有点甜
--  发布时间: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

 


--  作者:铜豌豆之首
--  发布时间: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

 


--  作者:有点甜
--  发布时间:2018/5/2 10:28:00
--  

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

 

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


--  作者:铜豌豆之首
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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}")


--  作者:铜豌豆之首
--  发布时间: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
--  作者:有点甜
--  发布时间:2018/5/2 11:04:00
--  

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


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

--  作者:有点甜
--  发布时间: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