《java入门第一季》之正则表达式小案例
案例一:
判断手机号码是否满足要求
import java.util.Scanner; /* * * 需求: * 判断手机号码是否满足要求? * * 分析: * 13436975980 * 13688886868 * 13866668888 * 13456789012 * 13123456789 * 18912345678 * 18886867878 * 18638833883 * */ public class RegexDemo { public static void main(String[] args) { //键盘录入手机号码 Scanner sc = new Scanner(System.in); System.out.println("请输入你的手机号码:"); String phone = sc.nextLine(); //写功能实现: boolean flag = checkPhone(phone); System.out.println(flag); } public static boolean checkPhone(String s){ return s.matches("1[38]\\d{9}");//规则描述:第一位是,第二位是3或者8,剩下的9位为0-9任意数 } }
案例二:
校验邮箱。
import java.util.Scanner; /* * 校验邮箱 * * 分析: * A:键盘录入邮箱 * B:定义邮箱的规则 * 1517806580@qq.com * ydl@163.com * linqingxia@126.com * fengqingyang@sina.com.cn * fqy@itcast.cn * C:调用功能,判断即可 * D:输出结果 */ public class RegexTest { public static void main(String[] args) { // 键盘录入邮箱 Scanner sc = new Scanner(System.in); System.out.println("请输入邮箱:"); String email = sc.nextLine(); boolean result = checkMail(email); System.out.println(result); } public static boolean checkMail(String s) { return s.matches("\\w+@\\w{2,6}(\\.\\w{2,3})+"); } }
案例三:当你登陆某个论坛,向发帖子留下自己qq号的时候,可惜你的号码就是留不下,总是输入*,或者其它奇妙的字符串。其实原理就是用了正则表达式替换。
/* * 替换功能 * String类的public String replaceAll(String regex,String replacement) * 参数: regex - 用来匹配此字符串的正则表达式 replacement - 用来替换每个匹配项的字符串 返回: 所得 String */ public class RegexDemo { public static void main(String[] args) { // 定义一个字符串 String s = "helloqq12345worldkh622112345678java"; // 直接把数字干掉 String regex = "\\d"; String ss = "*"; String result = s.replaceAll(regex, ss); System.out.println(result);//helloqq*****worldkh************java } }