Regex 如何在vbscript中使用正则表达式拆分字符串
我必须使用下面的标记在vbscript中拆分字符串Regex 如何在vbscript中使用正则表达式拆分字符串,regex,vbscript,asp-classic,Regex,Vbscript,Asp Classic,我必须使用下面的标记在vbscript中拆分字符串 _[any digit].archiveRT _[任意数字]。archiveRT 例如_1.archiveRT 请告诉我如何在vbscript中拆分这样的函数,虽然您肯定可以实现自己的SplitOnRe()函数(例如,以Perl的拆分为模型),但用唯一的/不可能的in-data标记和split()替换regexp的匹配项的肮脏/危险的伎俩可能会(几乎)获得相同的收益。代码: >> Set r = New RegExp >>
_[any digit].archiveRT _[任意数字]。archiveRT 例如_1.archiveRT
请告诉我如何在vbscript中拆分这样的函数,虽然您肯定可以实现自己的SplitOnRe()函数(例如,以Perl的拆分为模型),但用唯一的/不可能的in-data标记和split()替换regexp的匹配项的肮脏/危险的伎俩可能会(几乎)获得相同的收益。代码:
>> 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
>>
>设置r=newregexp
>>r.全局=真
>>r.Pattern=“\d+”
>>对于阵列中的每个s(“x12y”、“ab0cd”、“A9999B”)
>>Echo连接(拆分(r.Replace(s,“”,“”,“”,“|”)
>>下一个
>>
x | y
ab | cd
a | b
>>
(想法是(c)dmever;参见他关于Split/RegExp的讨论)您说过必须在最后一个标记之前获取字符串吗?你有这样的绳子吗
foofoofoo_1.archiveRT
在这种情况下,如果字符串的第一部分保证不包含下划线,则可以在上拆分
s = Split("foofoofoo_1.archiveRT", "_")
' s(0) is now "foofoofoo"
如果字符串中(在“标记”之前)可能有下划线,则可以删掉最后的Len(“\u 1.archiveRT”)
字符
s = Left(s, Len(s) - Len("_1.archiveRT"))
' or...
s = Left(s, Len(s) - 12)
如果模式类似,那么您可以简单地使用Split
在dot上拆分字符串。实际上,我必须在最后一个标记之前提取字符串。