正则表达式的语法
注意事项
在 Java 中,\\ 表示:我要插入一个反斜线,从而使其后的字符具有特殊的意义。在 Java 中正则表达式中则需要有两个反斜杠才能被解析为转义作用。可以简单的理解在 Java 的正则表达式中,两个 \\ 代表其他语言中的一个 \,所以表示一位数字的正则表达式是 \\d,而表示一个普通的反斜杠是 \\。
字符
1.预定义字符类
●.表示任何字符\.进行转义
●\d数字: [0-9]
●[
^ ]
:用于定义反向字符类。
●\D非数字[^ 0-9]
●\w单词字符: [a-zA-Z. _0-9] (. _是下划线)
●\W非单词字符: [^ \w]
2.字符类
●[abc]a、b、或c .
●[^abc]任何字符,除了a、 b、或c
●[a-zA-Z] a到z或A到Z, 两头的字母包括在内(范围) 简写[A-z]
3.Greedy数量词
●X? X,一次或一次也没有
XX,零次或多次
●X+X,一次或多次
●X{n}X, 恰好n次
●X{n,}X, 至少n次
●X{n,m}X, 至少n次,但是不超过m次n-m次
matches方法
在Java中,matches()
方法是一个字符串方法,用于检查该字符串是否与给定的正则表达式匹配。
语法
public boolean matches(String str)
参数
str为匹配字符串的正则表达式
返回值
这个方法返回一个布尔值,如果字符串与正则表达式匹配,那么返回true,否则返回false。
实例
实例1
public class Main { public static void main(String[] args) { String email = "example@example.com"; boolean isValid = email.matches("[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+"); System.out.println("邮箱地址是否有效:" + isValid); } }
正则表达式解析:
[\\w-]+
:匹配一个或多个字母、数字、下划线或连字符。(\\.[\\w-]+)*
:匹配0个或多个以点号开头,后面跟一个或多个字母、数字、下划线或连字符的组合。@
:匹配字符"@"。[\\w-]+
:匹配一个或多个字母、数字、下划线或连字符。(\\.[\\w-]+)+
:匹配一个或多个以点号开头,后面跟一个或多个字母、数字、下划线或连字符的组合。
实例2
public class Main { public static void main(String[] args) { String phoneNumber = "13800138000"; boolean isValid = phoneNumber.matches("1[3-9]\\d{9}"); System.out.println("手机号码是否有效:" + isValid); } }
正则表达式解析:
1
:匹配字符"1"。[3-9]
:匹配数字3到9之间的任意一个数字。\\d{9}
:匹配9个数字。