恰好匹配 8 位数字的 Java RegEx

新手上路,请多包涵

我有一个简单的 RegEx,它应该查找 8 位数字:

 String number = scanner.findInLine("\\d{8}");

但事实证明,它也匹配 9 位和更多数字。如何修复此 RegEx 以准确匹配 8 位数字?

例如:12345678 应该被匹配,而 1234567 和 123456789 不应该被匹配。

原文由 jarosik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 596
2 个回答

尝试这个:

\b 被称为单词边界它会告诉你的正则表达式数字在 8 之后结束

String number = scanner.findInLine("\\b\\d{8}\\b");

原文由 Dalorzo 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为这很简单并且有效:

 String regEx = "^[0-9]{8}$";

  • ^

  • [0-9] - 仅使用数字(您也可以使用 \d

  • {8} - 使用8位数字

  • $ - 到此结束。不要在 8 位数字后添加任何内容。

原文由 A.D 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题