我有一个字符串,它只能有由空格分隔的整数。例如:1 2 34 5 69 8 71 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}我的正则表达式有什么问题?
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
.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");
}
添加回答
举报
0/150
提交
取消