Java正则表达式和.matches()

Java正则表达式和.matches(),java,regex,Java,Regex,我正在尝试用Java中的正则表达式匹配字符串 如果我将正则表达式定义为匹配如下数字: private static final String NUMERIC_CHARS = "[0-9]"; 下面的行返回false,其中test=12345678 test.matches(NUMERIC_CHARS); 我原以为这是真的。根据oracle docs matches()的说法,如果且仅当整个区域序列与此匹配器的模式匹配,则返回“true”。这里不是这样吗? 提前感谢您的帮助。您缺少锚点+(要匹

我正在尝试用Java中的正则表达式匹配字符串

如果我将正则表达式定义为匹配如下数字:

private static final String NUMERIC_CHARS = "[0-9]";
下面的行返回false,其中test=12345678

test.matches(NUMERIC_CHARS);
我原以为这是真的。根据oracle docs matches()的说法,如果且仅当整个区域序列与此匹配器的模式匹配,则返回“true”。这里不是这样吗?
提前感谢您的帮助。

您缺少锚点
+
(要匹配多个数字),请使用此正则表达式:

"[0-9]+"
您的java代码:

private static final String NUMERIC_CHARS = "[0-9]+";

您缺少锚点
+
(要匹配多个数字),请使用以下正则表达式:

"[0-9]+"
您的java代码:

private static final String NUMERIC_CHARS = "[0-9]+";

您当前的正则表达式只允许1位。修改如下:

private static final String NUMERIC_CHARS = "^[0-9]+$";

然后它将计算为
true

您当前的正则表达式只允许1位数。修改如下:

private static final String NUMERIC_CHARS = "^[0-9]+$";

然后,它将计算为
true

您的正则表达式仅用于一位数。您的正则表达式仅用于一位数。