Java正则表达式和.matches()

sha*_*o86 1 java regex

我正在尝试将String与Java中的正则表达式进行匹配.

如果我定义正则表达式以匹配这样的数字:

private static final String NUMERIC_CHARS = "[0-9]";
Run Code Online (Sandbox Code Playgroud)

下面的行返回false,其中test = 12345678

test.matches(NUMERIC_CHARS);
Run Code Online (Sandbox Code Playgroud)

我期待这是真的.根据oracle docs,matches()返回"当且仅当整个区域序列与此匹配器的模式匹配时才返回".这不是这种情况吗?在此先感谢您的帮助.

anu*_*ava 5

你缺少锚点+(匹配超过1位数),所以使用这个正则表达式:

"[0-9]+"
Run Code Online (Sandbox Code Playgroud)

你的java代码:

private static final String NUMERIC_CHARS = "[0-9]+";
Run Code Online (Sandbox Code Playgroud)