正则表达式练习

电话号码验证

  • 要求

    1. 固定电话:如果有区号,那么区号可以是3位或者4位,首位必须是0,电话号码为7位到8位,区号与电话号码之间用“-”连接,如果没有区号,电话号码为7位到8位。
    2. 移动电话:11位,第一第二位为“13”,“15”,“18”三者之一。
  • 我的思路

    1. 先求不含区号的固定电话正则表达式:\d{7,8}
    2. 再求含区号的:0\d{2,3}-\d{7,8}
    3. 移动的:1[358]\d{9}
    4. 最后把他们用或连接:(\d{7,8})|(0\d{2,3}-\d{7,8})|(1[358]\d{9})

    过程中我以为表示或需要转义,使用的是\|,导致验证出错,这里再次提醒自己,|表示“或”的意思,\|单纯得表示“|”字符,没有特殊含义。

  • 验证

    package regex;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Telephone {
    	public static void main(String[] args){ 
    		//需要验证的手机号
    		String tel="12631721765";
    		//正则表达式
            String reg ="(0\\d{2,3}-\\d{7,8})|(\\d{7,8})|(1[358]\\d{9})" ;  
            //编译正则表达式
         	Pattern pattern = Pattern.compile(reg);
        	
        	Matcher matcher = pattern.matcher(tel);
        	// 字符串是否与正则表达式相匹配
        	boolean rs = matcher.matches();
        	System.out.println(rs);                                
     }
    		
    }
    

邮箱验证

  • 要求
  1. 用户名:字母、数字、中划线、下划线组成
  2. @
  3. 网址:字母、数字组成
  4. 小数点:.
  5. 组织域名:2-4位字母组成
  • 我的思路

    这个邮箱的话直接匹配,就是一条条规则去满足,用户名:[\w-]+,到@:[\w-]+@,到网址:[\w-]+@[A-Za-z0-9]+,到小数点,这里小数点和组织域名应该看成一个组合,因为有的会有.org.cn这样两组的,所以到小数点和组织域名:[\w-]+@[A-Za-z0-9]+(\.[A-Za-z]{2,4}){1,2}

  • 验证

    可以采用专门的正则表达式的软件工具验证,也可以用我上面那段代码验证

——刚学完一些语法写的,验证了几组数据都能达到要求,有漏洞欢迎指正!

常用正则表达式


如有建议欢迎指教,可以到我的博客上与我交流,这里的评论更难及时接收。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值