我有以下字符串:
"=if(WildMatch(PROD,'A','B','C','D'),PROD,'Other'"
我想提取WildMatch(和第一个逗号(在本例中为PROD)之间的内容) 我怎么能这样做?
答案 0 :(得分:1)
您的愿望值应该在第1组:
WildMatch\((.+?),
在此处查看结果:https://regex101.com/r/bQop74/1
答案 1 :(得分:0)
试试这个正则表达式:
\(([^,(]+)(?=,)
如果你想专门针对WildMatch
,你可以使用:
WildMatch\(([^,(\n]+)(?=,)
解释(对于第一个正则表达式):
\(
- 按字面意思匹配(
([^,(]+)
- 匹配并捕获任何既不是,
也不是(
的字符的1 +次出现。此组中捕获的数据是您所需要的。(?=,)
- 用于验证前面步骤中匹配的内容后跟逗号,
在这两种情况下,您都可以从每个匹配的group1获取所需数据,如下所示:
VBScript代码:
Option Explicit
Dim objRE, strTest, objMatches, match
strTest = "=if(WildMatch(PROD,'A','B','C','D'),PROD,'Other'"
Set objRE = New RegExp
objRE.Global=True
objRE.Pattern="\(([^,(]+)(?=,)"
Set objMatches = objRE.Execute(strTest)
For Each match In objMatches
MsgBox match.Submatches.Item(0)
Next
Set objMatches = Nothing
Set objRE = Nothing
<强>输出:强>