写点什么

Java 学习笔记——正则表达式,平安金服 java 面试题

用户头像
极客good
关注
发布于: 刚刚

System.out.println("abc".matches(s2)); //true


System.out.println("abdc".matches(s2)); //false


System.out.println("a123c".matches(s2)); //false


// \d 匹配单个数字字符,0-9 之间


String s3 = "12\d";


System.out.println("121".matches(s3)); //true


System.out.println("1234".matches(s3)); //false


// \w 匹配一个字母、数字或下划线


String s4 = "ab\w";


System.out.println("abc".matches(s4)); //true


System.out.println("ab_".matc


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


hes(s4)); //true


System.out.println("ab2".matches(s4)); //true


// \s 匹配一个空格字符(包括空格和\t 字符)


String s5 = "\s";


System.out.println(" ".matches(s5)); //true


System.out.println("\t".matches(s5)); //true


// \d 匹配一个数字字符,而\D 匹配一个非数字


String s6 = "\D";


System.out.println("a".matches(s6)); //true


// 以上这些,以此类推,小写变成大写后匹配的范围都完全相反


//\w 可以匹配单词字符,\W 匹配非单词字符


// \s 匹配空白字符,\S 匹配非空白字符


}


}


这里需要注意的是


在正则表达式中是\s,\d,到了实际写成字符串的时候,都变成了\\s,\\d


String r2 = “a&c”; 会直接报错,但是 String r3 = “\n”; 不会报错


说明 java 中,\必须与特定的字符绑定出现。


但是正则表达式中又要用到单个的 \ 来转义特定字符,所以就需要用 \\ 来获取一个单个的 \,放到正则表达式里面。因为 \\ 中的第一个 \ 会作为转义字符,改变第二个 \


总而言之一句话,正则表达式中的 \ 在实际写的时候全部换成 \\ 就行了

重复匹配

package RegularExpression;


public class demo4 {


public static void main(String[] args) {


//重复匹配


/* 修饰符 * 可以匹配任意个字符,包括 0 个字符


放在元字符后面,比如\d*,代表可以匹配任意数量的数字字符


放在字符后面,代表可以匹配任意个该字符


*/


//放在元字符后面


String s1 = "ab\d*";


System.out.println("ab123".matches(s1)); //true


System.out.println("ab".matches(s1)); //true


//放在字符后面


String ss1 = "abc*";


System.out.println("ab".matches(ss1)); //true,这里是匹配 0 个字符 c


System.out.println("abccc".matches(ss1)); //true


/* 修饰符+可以匹配至少一个字符


放在元字符后面,比如\d+,代表至少匹配一个数字字符


放在字符后面,代表匹配至少一个该字符


*/


//放在元字符后面


String s2 = "ab\d+";


System.out.println("ab".matches(s2)); //false,至少一个,不能是 0 个


System.out.println("ab123".matches(s2)); //true


//放在字符后面


String ss2 = "abc+";


System.out.println("ab".matches(ss2)); //false,至少包含一个该字符


System.out.println("abccc".matches(ss2)); //true


/* 修饰符?可以匹配 0 个或一个字符


放在元字符后面,比如\d?,代表可以匹配零个或者一个数字字符


放在字符后面,代表匹配零个或一个该字符


*/


//放在元字符后面


String s3 = "ab\d?";


System.out.println("ab".matches(s3)); //true


System.out.println("ab12".matches(s3)); //false


//放在字符后面


String ss3 = "abc?";


System.out.println("ab".matches(ss3)); //true


System.out.println("abcc".matches(ss3)); //false


/* 修饰符{n}可以精确指定 n 个字符


放在元字符后面,比如\d{3},代表匹配 3 个数字字符


放在字符后面,代表匹配 n 个该字符


*/


//放在元字符后面


String s4 = "ab\d{3}";


System.out.println("ab123".matches(s4)); //true


System.out.println("ab1234".matches(s4)); //false


//放在字符后面


String ss4 = "abc{3}";


System.out.println("abccc".matches(ss4)); //true


System.out.println("abc".matches(ss4)); //false


/* 修饰符{n,m}可以指定匹配 n~m 个字符


放在元字符后面,比如\d{2,4},代表匹配 2 到 4 个数字字符


放在字符后面,代表匹配 n 到 m 个该字符


*/


//放在元字符后面


String s5 = "ab\d{2,4}";


System.out.println("ab10".matches(s5)); //true,注意这里是两个数字字符 1 和 0


System.out.println("ab2".matches(s5)); //false


//放在字符后面


String ss5 = "abc{2,4}";


System.out.println("abcc".matches(ss5)); //true


System.out.println("abc".matches(ss5)); //false


/* 修饰符{n,}可以匹配至少 n 个字符


放在元字符后面,比如\d{2,},代表至少匹配 2 个数字字符


放在字符后面,代表至少匹配 n 个该字符


*/


//放在元字符后面


String s6 = "ab\d{2,}";


System.out.println("ab123".matches(s6)); //true


System.out.println("ab2".matches(s6)); //false


//放在字符后面


String ss6 = "abc{2,}";


System.out.println("abccc".matches(ss6)); //true


System.out.println("abc".matches(ss6)); //false


}


}

匹配开头和结尾

package RegularExpression;


public class demo6 {


public static void main(String[] args) {


//匹配开头和结尾

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java学习笔记——正则表达式,平安金服java面试题