`
tmj_159
  • 浏览: 701967 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

常用正则表达式学习

阅读更多

      做项目的时候不可避免的要用到各种验证,有时候如果我们写验证逻辑可能要写好长好长代码,这时候如果我们正则表达式可以很简单而且轻松的解决问题.

      以下仅列出经常遇到的一些正则表达式,项目中如果还可以遇到,继续补充...

 

     1.非负整数 (正整数+0)

      "^\d+$"

     解释: ^ 表示 匹配输入字符串的开始位置

             \d 表示 [0-9]

             $ 表示 匹配输入字符串的结束位置

      2.正整数

      " ^[0-9]*[1-9][0-9]*$ "

      解释: * 匹配前面的子表达式零次或多次

              

      3.由英语字母组成

      "^[A-Za-z]+$ "

 

      4.由字母数字,下划线组成

      "^[a-zA-Z0-9_]+$"

      解释:想想是不是在好多网站注册用户名的时候都这样?

              刚上网找到个更好的,果然还是菜鸟,呵呵," ^\w+$ "

    

      5.帐号更多条件 字母开头,允许5-16字节,允许字母数字下划线

      "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"

      解释:{4,5} 最少4个最多15个,加上前面的一个总共是5-16个了吧.

                                

      6.email 地址 非空串@非空串

      " ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ "

      解释: . 匹配除 "\n" 之外的任何单个字符

             

      7.uml 网址

      "[a-zA-z]+://[^\s]*"

 

      8.国内电话号码

      "\d{3}-\d{8}|\d{4}-\d{7}"

      解释:看出来了,匹配形式是这样的,010-21212121 或0476-4545454,好象没有手机的吧

     

      9.匹配身份证

       "\d{15}|\d{18}"

      解释:这么简单啊,我以前以为还判断里面每个段的意义的呢?

  

      10.好象还有个生日

       "......"

       解释:不都用级联的下拉列表的吗,还匹配什么啊.

 

     11.java 代码中用法

     

package com.tang.test;

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

public class TestPattern {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String rule = "[u4e00-u9fa5]";//匹配是否是中文
		String input="18812345666";
		Pattern p = Pattern.compile(rule);
		Matcher m=p.matcher(input);
		boolean b=m.matches();
		if(b){
			System.out.println("can Match");
		}else{
			System.out.println("cant not Match");
		}
	}

}

 最后要提醒下,如果正则表达式有'\',注意再补上一个'\',不要问我为什么了,否则我要大声说了:你还是学JAVA的吗?

呵呵,其实我开始也忘记了,不过我有强大的IDE--Eclipse,它告诉我了!

 

后补一个

12 .字母数字汉字下划线空格

      [a-zA-Z0-9\u4e00-\u9fa5_ ]

     解释:原来不同的条件拼接起来就好了。

     

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics