正则表达式


限定符:

* :零次或多次
+ :一次或多次
? :零次或一次
{n} :匹配n次
{n,} :至少匹配n次
{n,m} :至少匹配n次且最多匹配m次

字符串相关:

[xyz] :匹配所包含任意字符
[^XYZ] : 匹配未包含的任意字符
[a-z] :匹配指定范围内的任意字符
[^a-z] :匹配任何不在指定范围内的任意字符
\d :匹配一个数字字符
\D :匹配一个非数字字符
\w :匹配包含下划线的任意单词字符。等价于[A-Z0-9a-z_]
\W : 匹配任何非单词字符。等价于[^a-z0-9A-Z_]
\s : 匹配任何空白字符
\S :匹配任何非空白字符

定位符:

^ : 匹配输入字符串的开始位置
$ : 匹配输入字符串的结束位置
\b : 匹配一个单词边界,也就是单词和空格间的位置
\B :匹配非单词边界

转义符:\

选择匹配符:(|)

常用正则表达式

public class RegularUtils {

    /**
     * QQ号
     */
    public static final String QQ_PATTERN = "^[1-9][0-9]{5,10}$";
    /**
     * 数字校验
     */
    public static final String NUMBER_PATTERN = "^[0-9]*$";
    /**
     * 歌词
     */
    public static final String MUSIC_LYRIC = "^[1-9][0-9]{5,10}$";
    /**
     * 字母下划线数字
     */
    public static final String HTML_PATTERN = "[A-Za-z0-9-\\-]+";
    /**
     * 去除转义符号
     */
    public static final String REPLACE_BANK = "\\s*|\t|\r|\n";
    /**
     * 匹配getter方法的正则表达式
     */
    public static final String GET_PATTERN = "get(\\p{javaUpperCase}\\w*)";
    /**
     * 匹配setter方法的正则表达式
     */
    public static final String SET_PATTERN = "set(\\p{javaUpperCase}\\w*)";
    /**
     * 汉字 或:[\u4e00-\u9fa5]
     */
    public static final String CHINESE_PATTERN = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";
    /**
     * 国内手机号码
     */
    public static final String MOBILE_PHONE_NUMBER_PATTERN = "^0{0,1}(13[0-9]|15[0-9]|14[0-9]|18[0-9])[0-9]{8}$";
    /**
     * 电话号码的函数(包括验证国内区号,国际区号,分机号)
     */
    public static final String TEL_PATTERN = "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$";
    /**
     * 邮箱格式
     */
    public static final String EMAIL_PATTERN = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";
    /**
     * 整数
     */
    public static final String INTEGE_PATTERN = "^-?[1-9]\\d*$/";
    /**
     * 正整数
     */
    public static final String INTEGE1_PATTERN = "^[1-9]\\d*$/";
    /**
     * 负整数
     */
    public static final String INTEGE2_PATTERN = "^-[1-9]\\d*$/";
    /**
     * 数字(包含0)
     */
    public static final String NUM_PATTERN = "^([+-]?)\\d*\\.?\\d+$/";
    /**
     * 颜色值匹配
     */
    public static final String COLOR_PATTERN = "^[a-fA-F0-9]{6}$";
    /**
     * url匹配
     */
    public static final String URL_PATTERN = "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-.\\/?%&=]*)?$";
    /**
     * 邮政编码
     */
    public static final String ZIPCODE_PATTERN = "^\\d{6}$";
    /**
     * IPV4地址
     */
    public static final String IP4_PATTERN = "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$";
    /**
     * 图片后缀
     */
    public static final String PICTURE_PATTERN = "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga|JPG|BMP|GIF|ICO|PCX|JPEG|TIF|PNG|RAW|TGA)$";
    /**
     * 音频后缀
     */
    public static final String AUDIO_PATTERN = "(.*)\\.(mp3|wma|mid|midi|wav|vqf|MP3|WMA|MID|MIDI|WAV|VQF)$";
    /**
     * 视频后缀
     */
    public static final String  VIDEO_PATTERN = "(.*)\\.(rm|3gp|mp4|rmvb|avi|wmv|flv|vob|exe|mkv|swf|RM|3GP|MP4|RMVB|AVI|WMV|FLV|VOB|EXE|MKV|SWF)$";
    /**
     * 压缩文件后缀
     */
    public static final String RAR_PATTERN = "(.*)\\.(rar|zip|7zip|tgz|RAR|ZIP|7ZIP|TGZ)$";
    /**
     * 用户注册:匹配由数字、26个英文字母或者下划线组成的字符串
     */
    public static final String USERNAME_PATTERN = "^[A-Za-z]\\w{5,}$";
    /**
     * 字母数字组合
     */
    public static final String  ALLSTRING_PATTERN = "^\\w+$";
    /**
     * 纯字母
     */
    public static final String LETTER_PATTERN = "^[A-Za-z]+$";
    /**
     * 纯大写字母
     */
    public static final String LETTER_U_PATTERN = "^[A-Z]+$";
    /**
     * 纯小写字母
     */
    public static final String LETTER_L_PATTERN = "^[a-z]+$";
    /**
     * 第二代身份证号码匹配
     */
    public static final String IDCARD_PATTERN = "^[1-9]([0-9]{14}|[0-9]{17})$";

    /**
     * 正则校验
     *
     * @param str     字符串
     * @param regular 正则表达式
     * @return 结果 true: 正确 false:错误
     */
    public static boolean regularCheck(String str, String regular) {
        if (str == null || "".equals(str)) {
            return false;
        }
        if (!str.matches(regular)) {
            return false;
        }
        return true;
    }

    /**
     * 测试
     */
    public static void main(String[] args) {
        String str = "";
        System.out.println(regularCheck(str, MOBILE_PHONE_NUMBER_PATTERN));
    }
}