正则表达式: Regular Expression 就是通过一行字符串来描述一定的规则,相关的变量名定义为 regexp(单数),regexps(复数)
在生活中,设置密码,账号,等等都有一定的限制,而普通代码实现冗长,使用正则表达式方便简洁
正则表达式的结构组成
1,普通字符:作为一个字符不具有其他含义,例如字母与数字
2,元字符,作为一个字符之外还可以表达其他含义
regex是我们需要写的正则表达式校验规则,input是我们需要检验的字符串(下文简称 "检验值")
一,普通字符:
只有检验值和正则完全一致时才可以
public static final String regex="popo";
public static void check(String input){
boolean result= Pattern.matches(regex,input);
System.out.println(input+":"+result);
}
public static void main(String[] args) {
check("po");//false
check("pop");//false
check("popo");//true
}
二,\d
java中 \ 为转义字符所以需要写 \\d
例如:aaa\\d 检验值必须以aaa开头,以一个数字结尾
\D 与\d完全相反,表示非数字
public static final String regex="aaa\\d";
check("aaaa1");//false
check("aaaa");//false
check("aaa1");//true
public static final String regex="\\D\\D\\D";
public static void main(String[] args) {
check("aa");//false
check("aa1");//false
check("aaa");//true
}
三,\w 表示一个字母,数字或者下划线
例如:12\w45 检验值以12开头45结尾中间必须是一个字母数字或者下划线
\W 与\w相反
四,\s
表示一个看不见的符号(空格或者制表符)
\S与\s相反
五, .
. 表示"\n"和"\r"之外的任何单个字符
六, |
表示检验值满足其中一个即可
七, []
[] 表示匹配其中任意一个字符
[^]表示不与括号里的任意字符匹配
八,[a-z]
表示一个范围例如 a[c-e]z 检验值中间必须是c,d,e其中一个
[^c-e] 是[c-e]的补集
public static final String regex="a[b-d]e";
public static void main(String[] args) {
check("ae");//false
check("abcde");//false
check("abe");//true
}
九,\num
表示匹配第几个括号中的例如 :a(b)c\1 等同于abcb
a(b)(c)d\1\2相当于 abcdbc
public static final String regex="a(b)(c)d\\1\\2";
public static void main(String[] args) {
check("abcd");//false
check("abcdb");//false
check("abcdbc");//true
}
十,
例子:abc?de
? :表示c出现0次或者1次
例子:abc+de
+:表示匹配c一次或者多次
例子:abc{n}de
{n}:表示匹配c一共n次
例子:abc{n,m}de
{n,m}表示匹配c最少n次最多m次
例子:abc*de
表示匹配c任意次
public static final String regex="abc?de";
public static void main(String[] args) {
check("ade");//false
check("abcde");//true
check("e");//false
check("de");//flase
check("abde");//true
check("bcde");//false
}
感谢观看!点赞支持!