"\d+"和"^\d+"
那么字符串"a123456789"匹配第一个正则表达式是能匹配通过的,但是第二个就不行
^符号在正则表达式第一位出现表示的是强匹配开头,也就是必须是\d+开头的字符串才能匹配通过,中间一部分符合\d+规则的匹配不通过,$同理,是强结束匹配用的
^匹配开始位置$匹配结束位置
比如第一条正则的意思是 15个数字或者18个数字,多一个或少一个都不行,这就是^,$起的作用,要是不加$,16个数字也是可以匹配的,不过只能匹配到第15个
public boolean isDigit(String strNum) {return strNum.matches("[0-9]{1,}")
}
// 判断一个字符串是否都为数字
public boolean isDigit(String strNum) {
Pattern pattern = Pattern.compile("[0-9]{1,}")
Matcher matcher = pattern.matcher((CharSequence) strNum)
return matcher.matches()
}
//截取数字
public String getNumbers(String content) {
Pattern pattern = Pattern.compile("\\d+")
Matcher matcher = pattern.matcher(content)
while (matcher.find()) {
return matcher.group(0)
}
return ""
}
// 截取非数字
public String splitNotNumber(String content) {
Pattern pattern = Pattern.compile("\\D+")
Matcher matcher = pattern.matcher(content)
while (matcher.find()) {
return matcher.group(0)
}
return ""
}
// 判断一个字符串是否含有数字
public boolean hasDigit(String content) {
boolean flag = false
Pattern p = Pattern.compile(".*\\d+.*")
Matcher m = p.matcher(content)
if (m.matches())
flag = true
return flag
}