VBS Regex从字符串中获取下划线

问题描述 投票:2回答:1

我得到一个简单的结果来检测文件名的一部分。我的文件具有通用名称(FILENAME),第二个名称(SECONDNAME#)和最终标记,所有链接均带有下划线。

我在第二个名字后面,该名字可以有少量值。第三部分,即最终标签,可以高度可变,因此无需检查。

FILENAME_SECONDNAME1_DS.txt

FILENAME_SECONDNAME2_DS.txt

FILENAME_SECONDNAME3_ER.txt

检测第二个名字后的下划线很重要,可以帮助表明我有第二个名字,并且不会意外地检测到文件名中相似的字符串部分。

我检查以下内容

set RE = new RegExp
RE.Ignorecase = true

sCONST = "FILENAME_SECONDNAME1_DS.txt"

RE.pattern = "(SECONDNAME1)|(SECONDNAME2)|(SECONDNAME3)_"
if RE.test(sCONST) = true then
    set matches = RE.Execute(sCONST)
    for each match in matches
        MsgBox match.Value
    next
end if

VB的RegExp匹配我的模式,但是match.Value永远不会带有下划线。我只能假设我的下划线与我的模式不匹配。如何在比赛中包含下划线?

regex vbscript
1个回答
0
投票

[管道在整个事情上都是可行的,所以使用您当前的正则表达式,SECONDNAME1SECONDNAME2SECONDNAME3_可能是3个。

话虽如此,在这种情况下,您甚至不需要管道运算符。

改为执行以下操作:

SECONDNAME[1-3]_

仅匹配SECONDNAME,然后是1、2或3,然后是下划线。

Demo

© www.soinside.com 2019 - 2024. All rights reserved.