以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  提取相关字符串  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2258)

--  作者:don
--  发布时间:2009/4/1 16:46:00
--  提取相关字符串
本例提取所有[]中的字符串:

Dim T As String = "[基本工资]+[提成]+[补助]+[奖金]+[加班费]+iif([级别]=""初级"",100,200)"
Dim ecLs As New List(Of String)
Dim i,n, n1,n2 As Integer
n = T.Length - T.Replace("[","").length
for i  = 0 to n-1
    n1 = T.Indexof("[",n2)
    n2 = T.Indexof("]",n1)
    ecLs.Add (T.SubString(n1+1,n2-n1-1))
Next
output.show(ecLs(0))
output.show(ecLs(n-1))
[此贴子已经被作者于2009-4-1 17:01:48编辑过]

--  作者:菜鸟foxtable
--  发布时间:2009/4/1 16:55:00
--  
学习
--  作者:yangming
--  发布时间:2009/4/1 17:03:00
--  
学习中
--  作者:狐狸爸爸
--  发布时间:2009/4/1 17:12:00
--  

厉害,写得这么精简。


--  作者:gdlgh
--  发布时间:2009/4/1 20:19:00
--  

若能把正则表达式加入狐表,那真系完美了!图片点击可在新窗口打开查看

刚学了一下正则表达式,借don兄的题试试!

    Dim str as string = "[基本工资]+[提成]+[补助]+[奖金]+[加班费]+iif([级别]=""初级"",100,200)"
    Dim r As System.Text.RegularExpressions.Regex
    Dim m As System.Text.RegularExpressions.Match   
    r = New System.Text.RegularExpressions.Regex("\\[([^\\]]*)")   
    m = r.Match(str)
    While m.Success
        output.show(m.Groups(1).Value)
        m = m.NextMatch()
    End While

[此贴子已经被作者于2009-4-1 20:19:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/4/1 20:25:00
--  
呵呵,狐表支持正则表达式的,上面的代码可以在狐表中运行通过啊。
--  作者:gdlgh
--  发布时间:2009/4/1 20:35:00
--  

我是指不用引用空间那种呀!


--  作者:狐狸爸爸
--  发布时间:2009/4/1 20:38:00
--  
以下是引用gdlgh在2009-4-1 20:35:00的发言:

我是指不用引用空间那种呀!


呵呵,明白了


--  作者:lxl
--  发布时间:2009/4/1 20:41:00
--  
以下是引用狐狸爸爸在2009-4-1 20:38:00的发言:


呵呵,明白了

.net的正则表达式太复杂,估计加了没多少人愿意用。
最好还是贺老师加工出来一个。这个功能应该比较有用


--  作者:gdlgh
--  发布时间:2009/4/1 20:41:00
--  
呵.是不是可以呀!
相信在老总的努力下,可把正则表达式变成简单易用了!盼呀!!