欢迎访问宙启技术站
智能推送

matches()实现正则表达式匹配?

发布时间:2023-06-13 09:18:50

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中常用的字符串匹配方法之一,能够通过传入正则表达式,判断字符串是否符合一定的规则,可以用于校验数据的合法性,对于字符串的操作也有很大帮助。