Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在vbscript中使用正则表达式拆分字符串_Regex_Vbscript_Asp Classic - Fatal编程技术网

Regex 如何在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 >>

我必须使用下面的标记在vbscript中拆分字符串

_[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上拆分字符串。实际上,我必须在最后一个标记之前提取字符串。