matches()实现正则表达式匹配?
matches()是Java语言中,String类自带的正则表达式匹配方法,可以通过正则表达式判断字符串是否符合要求。matches()方法的返回值是一个布尔类型,如果匹配成功,返回true,否则返回false。在Java中,matches()方法被广泛应用在字符串校验、文本替换等方面。
Java中的正则表达式是由一些字符和运算符组成的模式字符串,用于匹配、查找和替换文本。当使用matches()方法时,需要传入一个正则表达式作为参数,同时也需要对待匹配的字符串有一定的了解。下面是一些常见的正则表达式语法:
1. ^:表示匹配字符串的开头。
2. $:表示匹配字符串的结尾。
3. .:表示匹配任意单个字符。
4. *:表示匹配前一个字符出现0次或多次。
5. +:表示匹配前一个字符出现1次或多次。
6. ?:表示匹配前一个字符出现0次或1次。
7. []:表示匹配字符集中任意一个字符。
8. {}:表示匹配前一个字符出现的具体次数。
9. ():表示将一组字符视为一个整体。
下面通过几个例子,介绍matches()方法的使用。
1. 判断是否为整数
可以使用正则表达式"\\d+"来判断一个字符串是否为整数。其中,"\d"表示匹配任意一个数字,"+"表示匹配前一个字符出现1次或多次。
public static boolean isNumber(String str) {
return str.matches("\\d+");
}
2. 判断是否为小数
可以使用正则表达式"\\d+(\\.\\d+)?"来判断一个字符串是否为小数。其中,"\d"表示匹配任意一个数字,"+"表示匹配前一个字符出现1次或多次,"\\."表示匹配小数点,"?"表示匹配前一个字符出现0次或1次。
public static boolean isDecimal(String str) {
return str.matches("\\d+(\\.\\d+)?");
}
3. 判断是否为手机号码
可以使用正则表达式"1[3-9]\\d{9}"来判断一个字符串是否为手机号码。其中,"1"表示以数字1开头,"[3-9]"表示第二位数字为3-9中的一个,"\\d{9}"表示后面跟随9个数字。这个正则表达式也可以写成"^[1][3-9]\\d{9}$",其中"^"表示匹配字符串的开头,"$"表示匹配字符串的结尾。
public static boolean isPhoneNumber(String str) {
return str.matches("1[3-9]\\d{9}");
}
总之,matches()方法是Java中常用的字符串匹配方法之一,能够通过传入正则表达式,判断字符串是否符合一定的规则,可以用于校验数据的合法性,对于字符串的操作也有很大帮助。
