2017-06-05 44 views
0

此代码有效,但重复的查找看起来不太理想。是否可以在不重复的情况下实现相同的功能?有条件地查找的Groovy范式

def pattern = ~'some_regex' 
def inFile = new File('in') 

inFile.eachLine { String line -> 
    if (line.find(pattern)) { 
     line.find(pattern) { match -> 
      ... // do something 
     } 
    } 
    else { 
     ... // do something (else) 
    } 
} 

回答

1

我建议使用eachMatch()

inFile.eachLine { String line -> 
    String matched 
    line.eachMatch(pattern){ 
     matched = it[ 0 ] 
     doSomethingWithMatch matched 
    } 
    if(!matched) doNoMatch() 
} 
+0

,如果没有匹配时,我将如何执行的替代块呢? –

+0

看到更新... – injecteer