用于查找 *(*007*)* 的 Java 正则表达式不起作用,希望得到一些建议

标签 java regex junit

我正在尝试实现一种方法来接受一串字符,如果它包含以下内容,则解析为 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));

关于用于查找 *(*007*)* 的 Java 正则表达式不起作用,希望得到一些建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949096/

相关文章:

java - 在 Spring 3 中是否可以动态设置 @ResponseStatus 的原因?

java - java中的线程概念

java - 为许多不同的配置文件集测试一个 Spring 测试类

java - JUnit 测试用例使用 Mockito : null pointer exception

java - 从 Maven 项目发布测试工具

java - 如何捕获批处理执行的 EXE 返回的数据?

java正则表达式搜索一个词

javascript - 如何使用正则表达式检测任何类型的 url

python - 如何在 SPARQL regex() 中使用逻辑或?

java - 通过 Maven 运行的 JUnit/Cucumber 测试未在 VS Code 中调试