我在编写正则表达式以匹配以下字符串时遇到问题:
var p1=@VAL([Test1Q1].[Bandwidth])
var p2=@VAL([Test1Q1].[Usages (KB)])
该模式应匹配以@VAL(
开头并以第一个括号)
结尾的输入,并捕获以下内容(来自上述输入):
[Test1Q1].[Bandwidth]
[Test1Q1].[Usages (KB)]
我尝试过以下表达式:
var fieldPattern = /@VAL\((.*)\)/;
var P1_Pattern = p1.match(fieldPattern );
var P2_Pattern = p2.match(fieldPattern );
我得到p1
的正确匹配,但p2
的结果错误。对于p2
我得到了
[Test1Q1].[Usages (KB
但需要以下结果:
[Test1Q1].[Usages (KB)]
我知道这是因为)
发生在p2
结束之前;但我无法解决它。如何修改我的正则表达式以匹配p1
和p2
并捕获我想要的值?
答案 0 :(得分:0)
正如@Xero所评论的那样,该模式匹配所提供的输入字符串。
您可以在以下代码段中确认并查看如何获取捕获组的值:
var p1='@VAL([Test1Q1].[Bandwidth])';
var p2='@VAL([Test1Q1].[Usages (KB)])';
var fieldPattern = /@VAL\((.*)\)/;
var P1_Pattern = p1.match(fieldPattern)[1];
var P2_Pattern = p2.match(fieldPattern)[1];
// FORNOW: Use alerts and console logging to show the capture groups' values.
console.log("P1_Pattern === '" + P1_Pattern + "'");
alert("P1_Pattern === '" + P1_Pattern + "'");
console.log("P2_Pattern === '" + P2_Pattern + "'");
alert("P2_Pattern === '" + P2_Pattern + "'");
该代码段应输出以下内容:
P1_Pattern === '[Test1Q1].[Bandwidth]'
P2_Pattern === '[Test1Q1].[Usages (KB)]'