菜鸟看java之正则表达式练习:验证邮箱。

正则表达式是拿来干嘛的?

它是验证字符串,操作字符串的一个非常简单的工具。它是一个简化操作的工具,如果能熟练使用它,那么你写的代码将会大大减少!高手必备啊。

如何使用正则表达式?

1.定义验证规则

2.实例化Pattern类//或者可以直接使用String类的方法不用实例化Pattern

3.实例化Matcher类

4.操作。



练习一:编写一个程序,检测用户输入的是否是一个邮箱。

/*
验证规则:^表示开头,开头的http:\\和www.可有可无,所以要加?
后跟(字母数字下划线)一个以上所以用\\w+
然后是@(必须有)和后缀修饰(有很多,一般2个小写字母以上)所以用[a-z]{2,}
结尾标志$
总结为:^[http:\\]?[www.]?\\w+@\\w+\\.[a-z]{2,}$

*/

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class TestEmailDemo{
	public static void main(String args[]){
		String ts1 = "755293352@qq.com";					//测试字符串1
		String ts2 = "yahoo.com";						/测试字符串2	
		String pat = "^[http:\\]?[www.]?\\w+@\\w+\\.[a-z]{2,}$";		//定义验证规则	

		Pattern p = Pattern.compile(pat);					//实例化Pattern类
		Matcher m1 = p.matcher(ts1);						//实例化Matcher类
		Matcher m2 = p.matcher(ts2);						//实例化Matcher类



		if(m1.matches()){							//使用正则验算
			System.out.println("字符串:"+ts1+"是一个邮箱地址。");
		}else{
			System.out.println("字符串:"+ts1+"不是一个邮箱地址。");
		}
		if(m2.matches()){							//使用正则验算
			System.out.println("字符串:"+ts2+"是一个邮箱地址。");
		}else{
			System.out.println("字符串:"+ts2+"不是一个邮箱地址。");
		}
	}
}
<pre name="code" class="java">/*
输出结果:
字符串:755293352@qq.com是一个邮箱地址。
字符串:yahoo.com不是一个邮箱地址。
*/


 


关于正则使用的关键:

个人认为,正则使用的关键在于对验证规则的定义,掌握了定义验证规则,那么对于正则的使用,也就开始登堂入室了。后面的对匹配到的字符的操作,其实都是差不多系统化的操作了,都是比较简单。


那么问题来了!如何定义验证规则?

1.观测得出你想要匹配的字符串的规律是什么。

   例如,你想匹配验证一个简单的ip那么ip有什么规律呢?是xxx.xxx.x.xxx(四个数字三个.\\\\其中一般来说第一个数字都是3位的且以1开头,其他是1-3位。)那么我们就可以得到验证规则:“1[0-9]{2}\.([0-9]{1,3}\.){2}[0-9]{1,3}”

下面解析一下这个验证规则:{2}表示有两个,\.表示小数点.([0-9]{3}\.)里的[0-9]{0,3}\.就是三个数字加一个点如555.    {2}表示有2个这样的字符,然后有3个数字。整体就可以匹配155.555.555.555,或155.5.5.5这样的ip;

2.利用正则里的语法,把你所观察到的规则表达出来!


下面是java中正则中的一些定义验证规则的语法(必须要看的懂理解懂)



【引用自java开发实战经典(名师讲坛)张兴华】

还有更多的有关知识,我暂时不能一一的列举出来。。希望各位能稍稍自己找一找。

正则表达式,看起来很简单。。可是你去百度一下,,你会发现居然会有专门介绍正则的书籍!!!!

所以,好好学习吧,每个知识,想达到高深的境界,需要付出很多的努力哦!


如果你觉得这些东西激发了你对正则表达式的兴趣,那么我会很高兴的啦~~~~

不过明显这里的知识并不足已让你学到更深入的知识,可以自行去学习更多关于它的知识哦~

这里有一个比较好的有很多规范实例

http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html


你也可以去看看的哦~



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值