它来了!!!
看了热榜正则表达式都上榜了目前正则表达式榜一是Python的 经过这几天呕心沥血不眠不休 终于今天Java的正则表达式它来了 还有练习题 耗时9981个小时 都是干货 赶紧收藏起来!!!!
1.概念
正则表达式:正确规则的表达式
通常用来检测字符串是否符合某规则、根据某规则切分字符串 或 替换符合规则的文本
例如:
检查校验字符串中的 QQ 号是否如何如下规则:
①必须为 5~15 位数字
②不能以 0 开头
若使用之前代码:
以上要求就可以变成一个正则表达式:[1-9][0-9]{4,14}
通过正则表达式,我们就可以检查字符串中的 QQ 号是否符合要求了。
2.字符串正则的常用方法
举例:校验手机号码
1:要求为 11 位数字
2:第 1 位为 1,第 2 位为 3、4、5、7、8 中的一个,后面 9 位为 0 到 9 之间的任意数字。
代码演示:
String phone = "18810022666";
String regex = "1[34578][0-9]{9}";
boolean flag = phone.matches(regex);
方法名 | 描述 |
boolean matches(String regex) | 当前字符串是否匹配给定的正则表达式 |
String replaceAll(String regex,String replacement) | 使用 replacement 替换当前字符串中所有符号正则表 达式的内容 |
String[] split(String regex) | 根据给定的正则表达式拆分当前字符串 |
练习:
1、
举例:校验 qq 号码.
1:要求必须是 5-15 位数字
2:0 不能开头
代码演示:
String qq = "604154942";
String regex = "[1-9][0-9]{4,14}";
boolean flag2 = qq.matches(regex);
2、
举例:校验手机号码
1:要求为 11 位数字
2:第 1 位为 1,第 2 位为 3、4、5、7、8 中的一个,后面 9 位为 0 到 9 之间的任意数字。
代码演示:
String phone = "18810022666";
String regex = "1[34578][0-9]{9}";
boolean flag = phone.matches(regex);
3、
举例:将字符串中的数字全部替换成!号
String str = "1a2b3c4d";
str = str.replaceAll("\\d", "!");
System.out.println(str);
4、
//根据空格切割字符串
String str = "我 很 帅";
String[] arr = str.split(" ");
for(int i=0;i
System.out.println(arr[i]);
}
5、注意:.的正则写法必须为\\.
//根据.切割 IP 地址
String str = "192.168.11.88";
String[] arr = str.split("\\.");
for(int i=0;i
System.out.println(arr[i]);
}
所以这些练习题你都学废了嘛
3.常见正则表达式
表达式 | 描述 |
^[a-z0-9_-]{3,16}$ | 用户名 |
^[a-z0-9_-]{6,18}$ | 密码 |
^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$ | 电子邮箱 |
[\u4e00-\u9fa5] | 匹配中文字符的正则表达式 |
练习:
1、从控制台输入一个字符串。使用正则来对字符串进行一系列操作:
①判断字符串是否是一个合格的用户名
②将字符串中的数字用”#”号替代. 数字的正则:[0-9] 或者 \\d
③根据”#”号将字符串切割成字符串数组并遍历展示