【发布时间】:2015-01-07 09:22:11
【问题描述】:
我正在尝试确定一个简单的正则表达式是否与 Groovy 中的字符串匹配。这是我在 gradle 中的任务。我试图匹配我在网上找到的两种不同的方式,但它们都不起作用。它总是打印出“NO ERROR FOUND”
task aaa << {
String stdoutStr = "bla bla errors found:\nhehe Aborting now\n hehe"
println stdoutStr
Pattern errorPattern = ~/error/
// if (errorPattern.matcher(stdoutStr).matches()) {
if (stdoutStr.matches(errorPattern)) {
println "ERROR FOUND"
throw new GradleException("Error in propel: " + stdoutStr)
} else {
println "NO ERROR FOUND"
}
}
【问题讨论】:
-
String.contains不够吗? -
在我的真实代码中,我使用了一个正则表达式,例如:/(?i)error|fail|abort/,我不确定 contains 是否适用于 Patters。如果是这样,那将是一个很好的解决方案
-
不,我以为这只是
error的情况:-) -
同意示例代码没有明确说明 OP 想要使用匹配的子字符串数据。我也喜欢
String.startsWith()。
标签: regex string groovy gradle match