正则表达式
正则表达式是什么?是一个字符串—“正则表达式内容”;
正则表达式作用: 用来匹配字符串的;
代码实现:
public boolean matches(String regex);
boolean b = “普通字符串”.matches(“正则表达式”);
书写正则表达式的技巧:
需要一位一位的去判断字符串;
[]:表示范围;
{}:表示前面一位字符串出现个数;
练习:校验qq号码
QQ号码需要满足的规则:
(1)必须0-9的数字;
(2)开头是1-9的数字;
(3)位数必须是5-12位;
String qq = "1762254168";//待验证的qq号码;
boolean b = qq.matches([1-9][0-9]{4-11});
Syatem.out.println(b);//
//解析:
//[1-9]是字符串的第一位的范围;
//[0-9]是字符串的第二位的范围;
//{4-11}表示[0-9]出现的次数
练习:校验手机号码
(1)必须是11位0-9的数字;
(2)开头第一位数字必须是1;
(3)第二位数字是3,4,5,7,8;
(4)其他数字可以是0-9;
String tel = "13172731966";
boolean b1 = tel.matches("1[34578][0-9]{9}");
Syatem.out.println(b1);
//解析:
//1表示开头第一位就是1;
//[34578]表示第二位是3,4,5,7,8的任意一位;
//[0-9]表示字符串第三位可以取0-9的任意一位;
//{9}表示[0-9]出现的次数;
public String[] split(String regex);//切割字符串;
练习:切割电话号码案例
String telPhone = "2345-3456-1257-2874";
Strng[] tel = telPhone.split("-+");
for(int i = 0; i < tel.length; i++) {
System.out.println(tel[i]);
}
练习:切割ip地址案例
//"."在正则表达式中表示任意字符;想要使用它必须通过转义;
String ip = "192.168.7.123";//ip地址
String[] ip2 = ip.split("\\.+");//\\.转义成普通的.,
for(int i = 0; i < ip2.length; i++) {
System.out.println(ip2[i]);
//192
//168
//7
//123
}