微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – 如何在Groovy中匹配字符串与模式

我试图确定一个简单的正则表达式是否匹配Groovy中的字符串.这是我在gradle中的任务.我尝试在网上找到两种不同的方式,但它们都不起作用.它始终打印出“没有发现错误

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"
    }
}

解决方法

(?s)忽略.*(DOTALL)的换行符,正则表达式表示完全匹配.所以用==〜作为快捷方式:

if ("bla bla errors found:\nhehe Aborting Now\n hehe" ==~ /(?s).*errors.*/) ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐