Regexp用于包含2个元素的数组

时间:2015-05-26 14:12:30

标签: ruby regex rspec

我不知道在ruby中是否存在regexp,表示你期望一个内部有2个整数的数组,并且每个数字不能高于10或低于0.并且这两个数字的加法不能高于我一直在寻找互联网,但我没有找到任何有用的东西。我希望你能帮助我。 Thanks¡¡

我的尝试类似于

expect(game.player.shoot).to eq([\d[0-10],\d[0-10]])

但我知道根本不工作......

2 个答案:

答案 0 :(得分:1)

我宁愿不使用正则表达式来检查数组中的值。 你的值是字符串吗?如果是这样,它们真的应该是字符串还是先解析一下?

如果它们已经是整数,那么这应该可以解决问题:

public someClass findObject(float x, float y){
    for(int i=0; i<list.size(); i++) {
       if( --objects match-- ) {
           selectedObject = null;
           return list.get(i);
       }
    }
    return null;
}

检查它们的总和不大于10:

expect(game.player.shoot.all? {|s| (0..10).include?(s) }).to be_true

答案 1 :(得分:0)

如果您真的想以正则表达式方式进行,我建议您使用以下内容。

它是故意分两步完成的,因为你正在测试两个不同的东西并保持断言孤立。

expect( game.player.shoot.count ).to eq(2)
expect( game.player.shoot ).to all( match(/[0-9]|10/) )

如前所述,其他答案只有在game.player.shoot为字符串的数组时才有效,否则最后一行应该更像

expect( game.player.shoot ).to all( (be >= 0).and(be <= 10) )

expect( game.player.shoot ).to all( satisfy{ |shoot| (0..10).include? shoot } )