如何在Groovy中检查接收到的文件中的前6个位置是否与第一行或第二行匹配

如何在Groovy中检查接收到的文件中的前6个位置是否与第一行或第二行匹配,groovy,Groovy,我想在groovy中检查第1行或第2行的前6个字符是否与文本“ABCDEFG”匹配。我将如何在Groovy中实现这一点 def testfile = ''' FEDCBAAVM654321 ABCDEFMVA123456 ''' if ( testfile[0..6].equals("ABCDEF") ) { // First line starts with ABCDEF } if ( testfile.tokenize("\n").get(1)[0..6].equals("ABC

我想在groovy中检查第1行或第2行的前6个字符是否与文本“ABCDEFG”匹配。我将如何在Groovy中实现这一点

def testfile = '''
FEDCBAAVM654321
ABCDEFMVA123456
'''

if ( testfile[0..6].equals("ABCDEF") ) {
    // First line starts with ABCDEF
}

if ( testfile.tokenize("\n").get(1)[0..6].equals("ABCDEF") ) {
    // Second line starts with ABCDEF
}
它应该与上面类似,或者如果可能,可以在一行中完成测试。

您可以使用:

def testfile = '''FEDCBAAVM654321
                 |ABCDEFMVA123456
                 '''.stripMargin()

testfile.tokenize( '\n' )                     // split on newline
        .take( 2 )                            // take the first two lines
        .every { it.startsWith( 'ABCDEF' ) }  // true if both start with ABCDEF


在您的解决方案中,您会说“如果两者都以ABCDEF开头,则为true”。但我希望它是真的,如果第1行或第2行匹配ABCDEF。这也会过去吗?或者只有当两行都以ABCDEF开头时才通过?@markdark ahhh抱歉,添加了使用
any
的第二种方法,如果其中一行(或两行)都以ABCDEF开头,则该方法为真:-)
testfile.tokenize( '\n' )                  // split on newline
        .take( 2 )                         // take the first two lines
        .any { it.startsWith( 'ABCDEF' ) } // true if either or both start ABCDEF