zoukankan      html  css  js  c++  java
  • 正则表达式

      提到正则表达式相信很多有过JSP开发经历的都会很熟悉,当我们需要的到用户的输入信息时,常常需要判断用输入的格式是否正确,这时稍微有点经验的开发者都会不约而同的想到正则表达式,因为正则表达式在表单验证时的便利,使得其成为了JSP开发必不可少的组成部分。

      闲话少说,接下来直奔主题,近期因为开发项目的需要,b/s端建设过程中,需要用户输入一些表单内容,因此把我刚刚整理好的正则表达式复习笔记和大家分享一下。

      正则表达式相当于一门语言,他有自己的格式和要求,接下来就让我们一起从新温习一下吧。

      为了输出的方便,我们首先定义一个输出方法:

    public static void p(Object o){
    		System.out.println(o);
    	}
    

     下面就是我们熟悉的正则表达式了:

                    //Matcher:代表匹配还是不匹配
    		
    		//"[a-z]{3}":表示a-z之间的三个字符串
    		Pattern patten = Pattern.compile("[a-z]{3}");
    		Matcher m = patten.matcher("abc");
    		p(m.matches());
    		p("abc".matches("[a-z]{3}"));       
    
                    p("a".matches("."));
    	    	p("aa".matches("aa"));
    		p("aaaa".matches("a*"));//"x*":代表字符串中只含有0个或多个"x"
    		p("aaaa".matches("a+"));//"x+":代表字符串中只含有一个或多个"x"
    		p("aaaa".matches("a?"));//"x?":代表字符串中只含有1个或0个x
    		p("aaaa".matches("a*"));
    		p("aaaa".matches("a+"));
    		p("aabb".matches("a*"));
    		p("aabb".matches("a+"));
    		p("13232441".matches("\d{3,20}"));//"{}":代表包含的字符的数目
    		p("127.134.0.23".matches("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"));
    		p("127.134.0.aaa".matches("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"));
    		p("193".matches("[1-3][1-9][1-5]"));//"[]":代表在[]中选择
    		p("493".matches("[1-3][1-9][1-5]"));            
    

     关于正则表达式如何匹配范围:

                    p("a".matches("[abc]"));
    		p("a".matches("[^abc]"));
    		
    		//以下三种写法同义
    		p("A".matches("[a-zA-Z]"));
    		p("A".matches("[a-z]|[A-Z]"));
    		p("A".matches("[a-z[A-Z]]"));
    		
    		p("R".matches("[A-Z&&[RFG]]"));//代表A-Z之间的RFG中的一个字符
    		p("R".matches("[RFG]"));
    

     关于正则表达式

                    /*
    		 * 认识s w d
    		 * d:代表[0-9]之间的一位数字
    		 * D:代表[^0-9] 指的是不属于0-9之间的一位字符
    		 * w:代表[a-zA-Z_0-9]之间的一位字符
    		 * s:代表一位转义字符如:
     	 x f 
     空格...
    		 */
    		/*p(" 
    
    	".matches("\s{4}"));
    		p(" ".matches("\S"));
    		p("a_8".matches("\w{3}"));
    		p("abc888&^#%".matches("[a-z]{1,3}\d+[&^#%]+"));
    		p("\".matches("\\"));*/
    		
    		/* 
    		 *边界匹配
    		 *"^":代表一行的开始
    		 *"$":代表一行的结尾
    		 */
    		/*p("hello sir".matches("^h.*"));
    		p("hello sir".matches(".*ir$"));
    		p("hello sir".matches("^h[a-z]{1,3}o\b.*"));//"/b":代表单词的边界
    		p("hellosir".matches("^h[a-z]{1,3}o\b.*"));*/
    		
    		//换行符匹配
    		//p(" 
    ".matches("^[\s&&[^\n]]*\n$"));//^[\s&&[^\n]]:表示开头是转义字符但不是换行符
    		
    		//Email匹配
    		p("anquanxiehui@qq.com".matches("[\w[.-]]+@[\w[.-]]+\.[\w]+"));
    

     看到这里相信大家都已经对正则表达式有了认识,相信大家会在以后的开发中经常用到,最后,本文如有不妥的地方请留言,谢谢。

  • 相关阅读:
    docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
    maven构建的项目相关的命令
    gradle build文件中文乱码解决
    adobe acrobat看PDF文档显示字体发虚,有毛刺的解决办法
    Jenkins 用Tomcat部署War出现 反向代理设置有误
    变量 $cfg['TempDir'] (./tmp/)无法访问。phpMyAdmin无法缓存模板文件,所以会运行缓慢。
    phpMyAdmin配置文件中的密文(blowfish_secret)太短
    phpmyadmin报错:mysqli_real_connect(): (HY000/2002): No such file or directory 错误正确解决方法
    Gradle编译设置编码格式
    redis中的hash
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/RegExp.html
Copyright © 2011-2022 走看看