我正在尝试实现一种方法来接受字符串,如果包含以下内容,则解析为true:后面跟有“(”,“ 007”和“)”。

换句话说:*(*007*)*

我当前的模式如下所示:

Pattern.compile("\\*\\s\\(\\s\\*\\s(0\\s0\\s7\\s)\\*\\s\\)\\*");


但是,它在我的229个junit测试用例中约有84个失败

最佳答案

难道就这么简单吗

.*\(.*007.*\).*


See it in action

为Java逃脱

.compile(".*\\(.*007.*\\).*")


一些测试用例:

String pattern = ".*\\(.*007.*\\).*";

Assert.assertFalse("(006)".matches(pattern));
Assert.assertFalse("007".matches(pattern));

Assert.assertTrue("hi(this007is)me".matches(pattern));
Assert.assertTrue("hi(007)".matches(pattern));

09-13 09:16