正则表达式入门(java版)

 

  项目中的很多校验都会用到正则表达式,当然不用也是可以的。不过比较方便,还是需要总结一下。分两个部分,先列出语法,然后分析几个正则,最后给出常用工具类。

基本语法

正则表达式入门(java版)_第1张图片

经典正则表达式分析

密码:英文和数字 ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

分析下第一个

^  $ 分别为正则的开头和结尾标识,无实际意义;

[] 里面的是待匹配的字符集;

a-z A-Z 0-9 分别代表小写字母a到z 大写字母A到Z 数字0到9;

+ 是对匹配字符的数量给以限制,1或者无穷多;

{} 里面是匹配的次数;

4,40 是对次数进行具体的限制;

 

 

 

 

帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$

分析这两个

很简单的说,

第一个只是将第一个匹配单独提出来了;第二个只是使用了\w来代替字母和数字

工具类

package com.eabax.util;
  
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
  
/**
 * 验证工具类
 * @author 酥小鱼
 *
 */
public class Validation {   

  /** 
   * 匹配由26个英文字母组成的字符串 ^[A-Za-z]+$ 
   */
  public static final String STR_ENG="^[A-Za-z]+$"; 
  /** 
   * 判断字符串是不是全部是英文字母 
   * @param str 
   * @return boolean 
   */
  public static boolean isEnglish(String str) { 
    return Regular(str,STR_ENG) ; 
  } 

/** 
   * 匹配是否符合正则表达式pattern 匹配返回true 
   * @param str 匹配的字符串 
   * @param pattern 匹配模式 
   * @return boolean 
   */
  private static boolean Regular(String str,String pattern){ 
    if(null == str || str.trim().length()<=0) 
      return false;      
    Pattern p = Pattern.compile(pattern); 
    Matcher m = p.matcher(str); 
    return m.matches(); 
  } 
}

 

这里只是随意写了个正则表达式,我们使用不同的校验只要添加不同的表达式,并在工具类里新增方法,然后统一调用,至于如何写正则表达式,我们可以参靠给出的表格自己编写,当然常用的我们可以百度。给个链接当然具体情况具体对待,相信对照着表格自己也能写。

正则表达式入门(java版)_第2张图片

你可能感兴趣的:(Java)