java - 为什么下面的模式匹配对字符串 "ababx300000055773908"给出 True

标签 java regex

首先对这个原始问题感到抱歉,我想知道下面的方法如何返回 true

  Pattern.compile("([0-9]{15})").asPredicate().test("ababx300000055773908")

如果我在这里遗漏了什么,请告诉我。

最佳答案

您必须定义要匹配的字符串的开头和结尾。 您的模式匹配整个字符串中的 15 次数字,而不考虑模式的位置。 使用正则表达式 ^[0-9]{15}$

Pattern.compile("(^[0-9]{15}$)").asPredicate().test("ababx300000055773908");

关于java - 为什么下面的模式匹配对字符串 "ababx300000055773908"给出 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60388044/

相关文章:

javascript - 正则表达式 JavaScript 捕获直到(之前)可选字符串

python - 正则表达式 : Match string between two slashes if the string itself contains escaped slashes

java - 如果标签包含目标,则标签之间的正则表达式匹配

java - Android:获取 Zip 中的文件数?

java - 如何只允许一个 Activity 的 @Async 任务?

java - 子类是否从它的父类(super class)继承构造函数?

javascript - 将类似的正则表达式检查合并到一个 JS 中

c++ - 正则表达式引擎测试

java - 相同物体的比较

java - 跨实例同步对 MDB 方法的访问