如何使用正则表达式获取此表中第一行的数字?

时间:2016-09-03 00:22:57

标签: regex gitlab

GitLab提供了一个选项,让徽章代表您当前的代码覆盖率。它通过查看某些CI脚本的输出,然后在输出上运行正则表达式来完成此操作。

话虽如此,给出这样的输出:

All files:% Stmts

我希望能够获得/^All files\s*\|\s*(\d*)/ 的值(在这种情况下应为100)。

目前我正在使用这个正则表达式,但它似乎没有做到这一点:

//Creates a new star field
func starfieldEmitterNode(speed speed: CGFloat, lifetime: CGFloat, scale: CGFloat, birthRate: CGFloat, color: SKColor) -> SKEmitterNode {
    let star = SKLabelNode(fontNamed: "Helvetica")
    star.fontSize = 80.0
    star.text = "✦"
    let textureView = SKView()
    let texture = textureView.textureFromNode(star)
    texture!.filteringMode = .Nearest

    let emitterNode = SKEmitterNode()
    emitterNode.particleTexture = texture
    emitterNode.particleBirthRate = birthRate
    emitterNode.particleColor = color
    emitterNode.particleLifetime = lifetime
    emitterNode.particleSpeed = speed
    emitterNode.particleScale = scale
    emitterNode.particleColorBlendFactor = 1
    emitterNode.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMaxY(frame))
    emitterNode.particlePositionRange = CGVector(dx: CGRectGetMaxX(frame), dy: 0)
    emitterNode.particleSpeedRange = 16.0

    //Rotates the stars
    emitterNode.particleAction = SKAction.repeatActionForever(SKAction.sequence([
        SKAction.rotateByAngle(CGFloat(-M_PI_4), duration: 1),
        SKAction.rotateByAngle(CGFloat(M_PI_4), duration: 1)]))

    //Causes the stars to twinkle
    let twinkles = 20
    let colorSequence = SKKeyframeSequence(capacity: twinkles*2)
    let twinkleTime = 1.0 / CGFloat(twinkles)
    for i in 0..<twinkles {
        colorSequence.addKeyframeValue(SKColor.whiteColor(),time: CGFloat(i) * 2 * twinkleTime / 2)
        colorSequence.addKeyframeValue(SKColor.yellowColor(), time: (CGFloat(i) * 2 + 1) * twinkleTime / 2)
    }
    emitterNode.particleColorSequence = colorSequence

    emitterNode.advanceSimulationTime(NSTimeInterval(lifetime))
    return emitterNode
}

1 个答案:

答案 0 :(得分:1)

我在使用Jest配置GitLab实例以进行代码覆盖率报告时遇到了同样的问题。看起来它在全局模式下工作,所以多线解决方案确实不起作用,就像@ 4castle建议的那样。

我们最终使用的正则表达式如下,它也匹配浮点数:

/All files\s*\|\s*([\d.]+)/