验证由仅由空格分隔的数字组成的字符串

我有一个字符串,它只能有由空格分隔的整数。例如:


1 2 3

4 5 6

9 8 7

1 p 3 // it should not pass

所以我的字符串中应该始终包含由空格分隔的数字,这就是为什么我添加了这个正则表达式检查来验证字符串但它不起作用:


String line = "1 2 3"; // "1 p 3"

if(!line.matches("[ ]?\\d+")) {

    //it should come here for "1 p 3" string

}

我的正则表达式有什么问题?


HUWWW
浏览 92回答 1
1回答

慕桂英546537

.matches仅true当整个字符串与正则表达式匹配时才会评估为。(你可以把它通过被隐式包围^和$。)因此,以验证与仅之间,用空格数的字符串:\d+(?: \d+)*https://regex101.com/r/wK9WhP/1请注意,不需要一个只有一个字符的字符集 - 更容易完全忽略字符集。String line = "1 2 3"; // "1 p 3"if(line.matches("\\d+(?: \\d+)*")) {    System.out.println("match");} else {    System.out.println("no match");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java