2014-04-18 26 views
0

字符串與正則表達式拆分我不得不分割在VBScript中的字符串下面令牌
如何在VBScript

 
_[any digit].archiveRT 

對於實例_1.archiveRT

Plase告訴我,我該怎麼在vbscript中分割如此

+0

如果模式是相似的,那麼你可以簡單地使用'Split'拆就點 –

+0

字符串其實我這最後一個令牌之前獲取的字符串。 –

回答

1

雖然你肯定可以實現你自己的SplitOnRe()函數(例如在Perl的分割上建模),但用正則表達式替換正則表達式匹配的髒/風險技巧e /不可能在數據標記和Split()這可能是(幾乎)相同的增益更少的努力。在代碼:

>> Set r = New RegExp 
>> r.Global = True 
>> r.Pattern = "\d+" 
>> For Each s In Array("x12y", "ab0cd", "a99999999b") 
>>  WScript.Echo Join(Split(r.Replace(s,"<>"), "<>"), "|") 
>> Next 
>> 
x|y 
ab|cd 
a|b 
>> 

(這個想法是(C)dm_4ever;看到他contribution對分流/正則表達式的討論)

0

你說你有這最後一個令牌之前獲取字符串?那麼你有這樣的字符串嗎?

foofoofoo_1.archiveRT 

在這種情況下,如果你的字符串的第一部分是保證包含下劃線,你可以只劈在_

s = Split("foofoofoo_1.archiveRT", "_") 

' s(0) is now "foofoofoo" 

如果有可能在你的字符串下劃線(之前你的「令牌」),你可以只剪掉最後Len("_1.archiveRT")字符。

s = Left(s, Len(s) - Len("_1.archiveRT")) 

' or... 

s = Left(s, Len(s) - 12)