下面的代码是否确保'myteststring'只包含两位数字?如果不是,如何修改?
if(myteststring.matches("^[0-9]*\\$"))
{
// Do something
}
else {
// Do something else
}
最佳答案
要匹配至少包含一对数字、任意字符组合的字符串,并且限制数字恰好是两位数:
myteststring.matches("^[^0-9]*([0-9]{2}[^0-9]+)*[0-9]{2}[^0-9 ]*$")
要包含空字符串:
myteststring.matches("^[^0-9]*([0-9]{2}[^0-9]+)*([0-9]{2})?[^ 0-9]*$")
要匹配恰好包含两个数字的字符串:
myteststring.matches("^[0-9]{2}$")
或者
myteststring.matches("^[0-9][0-9]$")
^
表示匹配行的开头。当在方括号内使用时,它与模式的相反方向匹配。
[0-9]
表示匹配其中之一。从 0 到 9 的数字。
{2}
表示匹配前面的正则表达式两次。
$
表示匹配行尾。
关于java - 检查字符串中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883306/