信手拈来 妙手偶得 » 日志 » [VB]<原创>Split函数与正则表达式的结合运用
[VB]<原创>Split函数与正则表达式的结合运用
Junglesong 发表于 2005-09-23 15:43:38
在上一讲中我们谈到了使用Split来劈分字符串得到数组的例子,但如果字符串是
这样:
111b222d333f444
需要分成111,222,333,444
这时Split函数就不一定比Mid函数高明高效了。
但借助正则表达式,Split可以挽回败局。
首先当然是在VB中加入对正则表达式的参照(Microsoft VBScript Regular Expressions 5.5)
。
再书写代码如下:
Dim strDest As String
strDest = "111b222d333f444" ‘// 这是目标字符串
Dim reg As New RegExp
reg.IgnoreCase = True
reg.Global = True
reg.MultiLine = True
reg.Pattern = "b|d|f" ‘// 这是劈分字符串的正则表达式
Dim mc As MatchCollection
strDest = reg.Replace(strDest, ",") ’// 将strDest的b,d,f以,取代
Dim strArr() As String
strArr = Split(strDest, ",") ‘// 正式劈分
最后结果就出来了。也可以用replace函数将b,d,f一步步替换成,,但没有这样
做直观方便。
PS:java中String的Split和replace函数可以直接接受正则表达式,省却了上述的
第二步。
这样:
111b222d333f444
需要分成111,222,333,444
这时Split函数就不一定比Mid函数高明高效了。
但借助正则表达式,Split可以挽回败局。
首先当然是在VB中加入对正则表达式的参照(Microsoft VBScript Regular Expressions 5.5)
。
再书写代码如下:
Dim strDest As String
strDest = "111b222d333f444" ‘// 这是目标字符串
Dim reg As New RegExp
reg.IgnoreCase = True
reg.Global = True
reg.MultiLine = True
reg.Pattern = "b|d|f" ‘// 这是劈分字符串的正则表达式
Dim mc As MatchCollection
strDest = reg.Replace(strDest, ",") ’// 将strDest的b,d,f以,取代
Dim strArr() As String
strArr = Split(strDest, ",") ‘// 正式劈分
最后结果就出来了。也可以用replace函数将b,d,f一步步替换成,,但没有这样
做直观方便。
PS:java中String的Split和replace函数可以直接接受正则表达式,省却了上述的
第二步。
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
