gpt4 book ai didi

javascript - 如何使用正则表达式从 Istanbul 尔文本摘要记者中提取测试范围?

转载 作者:可可西里 更新时间:2023-11-01 02:21:23 26 4
gpt4 key购买 nike

Gitlab CI 要求您指定一个正则表达式来提取语句代码覆盖率(以便他们可以显示它)。考虑到下面的构建输出(使用 jest 和 istanbul),我设法做到了:/Statements.*(\d+\%)/

... (other build output)
=============================== Coverage summary ===============================
Statements : 53.07% ( 95/179 )
Branches : 66.67% ( 28/42 )
Functions : 30.99% ( 22/71 )
Lines : 50.96% ( 80/157 )
================================================================================
... (other build output)

这突出显示了 Statements : 53.07% 部分(参见此处:http://regexr.com/3e9sl)。但是,我只需要匹配 53.07 部分,我该怎么做?

最佳答案

I need to match only the 53.07 part,

使用惰性 .*?,添加 (?:\.\d+)? 也匹配 float ,并访问捕获组:

var re = /Statements.*?(\d+(?:\.\d+)?)%/; 
var str = '... (other build output)\n=============================== Coverage summary ===============================\nStatements : 53.07% ( 95/179 )\nBranches : 66.67% ( 28/42 )\nFunctions : 30.99% ( 22/71 )\nLines : 50.96% ( 80/157 )\n================================================================================\n... (other build output)';
var res = (m = re.exec(str)) ? m[1] : "";
console.log(res);

请注意 Statements.*?(\d+(?:\.\d+)?)% 也允许整数值,而不仅仅是 float 。

图案说明:

  • 语句 - 文字字符串
  • .*? - 除空格外的零个或多个字符,但尽可能少
  • (\d+(?:\.\d+)?) - 第 1 组(您需要的值将被捕获到该组中)捕获 1 个以上的数字和一个可选的 序列. 和后面的 1+ 位
  • % - 百分号(如果你需要打印它,将它移到上面的括号内)

参见 regex demo .

关于javascript - 如何使用正则表达式从 Istanbul 尔文本摘要记者中提取测试范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39658439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com