正则表达式
判断对象是否符合要求,需要用到正则表达式。
matches("正则表达式"),返回值是boolean类型
正则表达式中的一些特殊字符:
元字符 限定符 方括号
\\d 代表0~9的数字 {n} 出现n次 [abc] 表示a,b或者c
\\p{Lower} 代表a~z的小写字母 {n,} 至少n次 [a-z] 表示a~z的任何字符
\\w 代表可用作标识符的字符 {n,m} 出现n~m次
\\. 代表点字符“.”
//判断E-mail地址是否合法 String regex="\\w{1,}\\@\\w{1,}\\.{1}\\w{1,}";//正则表达,定义邮箱格式 String str1="abc@."; String str2="abc@163.com"; System.out.println(str1.matches(regex)); System.out.println(str2.matches(regex)); //判断字符串是否满足要求(第1位大写字母,2~4小写字母,后3位是数字) String regexp="\\p{Upper}\\p{Lower}{3}\\d{3}"; String str3="Abcd123"; String str4="abc"; System.out.println(str3.matches(regexp)); System.out.println(str4.matches(regexp)); //判断手机号的合法性 String regex1="1[3,5,8]\\d{9}"; String str5="13012341234"; String str6="130123412345"; if(str5.matches(regex1)) { System.out.println(str5+"是合法手机号"); }else { System.out.println(str5+"不是合法手机号"); } if(str6.matches(regex1)) { System.out.println(str6+"是合法手机号"); }else { System.out.println(str6+"不是合法手机号"); } //判断IP地址是否合法(1.0.0.0-255.255.255.255) String regex2="(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)"; String str7="192.168.1.1"; String str8="0.168.1.1"; System.out.println(str7.matches(regex2)); System.out.println(str8.matches(regex2));
import java.util.regex.Pattern; public class Format { public static void main(String[] args) { //是否是汉字,计算个数 //String regex3="[\u4E00-\u9FA5]{0,}"; String text="pure love 左溢中国 and 夕西行"; int amount=0; for(int i=0;i<text.length();i++) {//遍历字符,判断是否属于汉字编码 boolean mc=Pattern.matches("[\\u4E00-\\u9FA5]{0,}",""+text.charAt(i)); if(mc) { amount++; } } System.out.println(amount+"个汉字"); } }