以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用什么函数能提取[]中的字符?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69205)

--  作者:whyfoxtable
--  发布时间:2015/6/1 14:19:00
--  [求助]用什么函数能提取[]中的字符?

dim base as String = "[3][2]"

dim newStr As String

 

newStr =SubString(base,CharIndex("]",base)+2,Len(base)-1-CharIndex("]",base)-1)

 

output.show(newStr)

 

需求:取出[2]中的2。

 

如何写以上意思的代码?

 

 

[此贴子已经被作者于2015/6/1 14:35:05编辑过]

--  作者:Bin
--  发布时间:2015/6/1 14:20:00
--  
请描述问题, 你这样概念太模糊.无法知道你想实现什么.

字符串处理,得有一定的规则,系统是死的.只要你告诉他规则.他才懂怎么做.

例如.去所有[] 扩起来的

去所有[]括起来的 第二个  

或者取第几位等等,之类的.得有明确的规则

--  作者:whyfoxtable
--  发布时间:2015/6/1 14:24:00
--  [求助]取第二个括号中的数字

取第二个括号中的数字:

 

拟这样写:

 

SubString(base,CharIndex("]",base)+2,Len(base)-1-CharIndex("]",base)-1)

 

但通不过。。。。 SubString不识别

[此贴子已经被作者于2015/6/1 14:35:41编辑过]

--  作者:Bin
--  发布时间:2015/6/1 14:36:00
--  
[3] 阿道夫[2]  如果3和2中间会有其他字符就用这段代码
Dim base As String = "[3][2]"
Dim mc As object =  System.Text.RegularExpressions.Regex.Matches(base,"\\[\\d\\]")
MessageBox.show(mc(1).Value)

如果中间没字符就用这段
Dim base As String = "[3][2]"
Dim s As String =  System.Text.RegularExpressions.Regex.Match(base,"(?<=\\[\\d\\])\\[\\d\\]").value
MessageBox.show(s)



--  作者:大红袍
--  发布时间:2015/6/1 14:37:00
--  
Dim str As String = "[1][2]"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=\\[).+?(?=\\])")
For i As Integer = 0 To mc.count - 1
    msgbox(mc(i).Value)
Next

--  作者:whyfoxtable
--  发布时间:2015/6/1 14:38:00
--  [分享]一出手就是一大段字符,太感谢!
我去试试,回头通报结果。
--  作者:whyfoxtable
--  发布时间:2015/6/1 14:45:00
--  [求助]哪里有System.Text的说明或帮助?
如题
--  作者:Bin
--  发布时间:2015/6/1 14:47:00
--  
微软MSDN
--  作者:大红袍
--  发布时间:2015/6/1 14:47:00
--  

 看一下

 

http://www.baidu.com/link?url=l5M8TqZ4eTxJn4o7OXxGLW4yXgBhhTN2lqXXtjLWLDlhwmegs48bL_2VgQ20-8IRKUIradPGVG0LWza49L9W6q&wd=&eqid=b99952a50003812900000005556bffce&ie=utf-8

 


--  作者:whyfoxtable
--  发布时间:2015/6/1 15:01:00
--  [分享]谢谢。原来是更高一层的东西啊!

怪不是没在帮助里找到有关信息!!!!

 

我试了一下下面的代码:

 

Dim base As String = "[3][2]"
Dim newStr ,FinalStr As String
Dim Parts() As String = Base.Split("]")
newStr = Parts(1)
FinalStr = newStr.Remove(0,1)
output.show(FinalStr)

 

比较笨,不过是帮助里内容都有的。。。

 

再次感谢几位大师。