完全匹配8位数字的Java正则表达式
我有一个简单的正则表达式,应该查找8位数字:完全匹配8位数字的Java正则表达式,java,regex,Java,Regex,我有一个简单的正则表达式,应该查找8位数字: String number = scanner.findInLine("\\d{8}"); 但事实证明,它也匹配9位或更多的数字。 如何修复此正则表达式以精确匹配8位数字 例如:12345678应该匹配,而 不应使用1234567和123456789。请尝试以下方法: \b被称为单词边界,它会告诉您的正则表达式数字在8之后结束 String number = scanner.findInLine("\\b\\d{8}\\b"); 正则表达式将匹配
String number = scanner.findInLine("\\d{8}");
但事实证明,它也匹配9位或更多的数字。
如何修复此正则表达式以精确匹配8位数字
例如:12345678应该匹配,而
不应使用1234567和123456789。请尝试以下方法:
\b
被称为单词边界,它会告诉您的正则表达式数字在8之后结束
String number = scanner.findInLine("\\b\\d{8}\\b");
正则表达式将匹配字符串中的任意8位数字,即使在这8位数字之后还有其他数字 要匹配8个不包含数字的连续数字,您需要使用lookarounds:
String reg=“(?我认为这很简单,而且很有效:
String regEx = "^[0-9]{8}$";
^
-以开头
[0-9]
-仅使用数字(也可以使用\d
)
{8}
-使用8位数字
$
-到此结束。不要在8位数字后添加任何内容
您可以发布应该匹配和不匹配的示例吗?取决于哪个上下文。但是您的示例将在任何8位以上的上下文中匹配,因为它没有锚定或限制任何边界。您不需要在开始时也使用单词边界吗?否则您仍然可以匹配较长数字的最后8位这将永远不会发生在之间找到8位数字。在所有解决方案中,只有这一个有效,非常感谢,我在3小时后找到了它
String regEx = "^[0-9]{8}$";