package com.persagy.fm.common.constant; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式常量 * * @author lixing * @version V1.0 2021/3/19 3:40 下午 **/ public class RegexConstants { /** * 空字符串正则表达式 */ private static final String BLANK_REGEX = "^$"; /** * 中文正则表达式 */ private static final String CH_REGEX = "[\u4e00-\u9fa5]"; /** * 小写字母正则表达式 */ private static final String LOWERCASE_REGEX = "[a-z]"; /** * 大写字母正则表达式 */ private static final String UPPERCASE_REGEX = "[A-Z]"; /** * 数字正则表达式 */ private static final String NUM_REGEX = "[0-9]"; /** * 经常允许的特殊字符正则表达式 */ private static final String CHAR_REGEX = "['._#~]"; /** * 所有允许的特殊字符正则表达式 */ private static final String ALL_CHAR_REGEX = "[!\"#\\$%&'\\(\\)\\*\\+,-\\.\\/:;<=>\\?@\\[\\\\\\]\\^_`\\{\\|\\}~\\s]"; private static final String EN_REGEX_EXPRESSION = LOWERCASE_REGEX + "|" + UPPERCASE_REGEX; private static final String EN_NUM_REGEX_EXPRESSION = EN_REGEX_EXPRESSION + "|" + NUM_REGEX; private static final String EN_NUM_CHAR_REGEX_EXPRESSION = EN_NUM_REGEX_EXPRESSION + "|" + CHAR_REGEX; private static final String NAME_REGEX_EXPRESSION = EN_NUM_CHAR_REGEX_EXPRESSION + "|" + CH_REGEX; private static final String ALL_REGEX_EXPRESSION = EN_NUM_REGEX_EXPRESSION + "|" + CH_REGEX + "|" + ALL_CHAR_REGEX; private static final String TEXT_REGEX_EXPRESSION = CH_REGEX + "|" + EN_REGEX_EXPRESSION; /** * 允许的字符正则表达式报警信息 */ private static final String CHAR_REGEX_WARNING = " ' . _ # ~ "; private static final String ALL_CHAR_REGEX_WARNING = "空格和! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _` { | } ~"; /** * 名称正则表达式 * 支持中英文字符,数字,"._#~" */ public static final String NAME_REGEX = "(" + NAME_REGEX_EXPRESSION + ")+"; /** * 名称正则表达式报警信息 */ public static final String NAME_REGEX_WARNING = "仅可输入中文,字母,数字以及" + CHAR_REGEX_WARNING; /** * 常用文本正则表达式 * 支持中英文字符 */ public static final String TEXT_REGEX = "(" + TEXT_REGEX_EXPRESSION + ")+"; /** * 所有允许的文本正则表达式 * 支持中英文字符 */ public static final String ALL_REGEX = "(" + ALL_REGEX_EXPRESSION + ")+"; /** * 文本正则表达式报警信息 */ public static final String TEXT_REGEX_WARNING = "仅可输入中文,字母"; public static final String ALL_REGEX_WARNING = "仅可输入中文,字母,数字以及" + ALL_CHAR_REGEX_WARNING; /** * 英文正则表达式 * 支持数字和字母 */ public static final String EN_NUM_REGEX = "(" + EN_NUM_REGEX_EXPRESSION + ")+"; /** * 英文或空字符串正则表达式 * 支持数字和字母和空字符串 */ public static final String EN_NUM_BLANK_REGEX = "(" + BLANK_REGEX + "|" + EN_NUM_REGEX_EXPRESSION + ")+"; /** * 英文正则表达式报警信息 */ public static final String EN_NUM_REGEX_WARNING = "仅可输入字母,数字"; /** * 英文、数字、字符正则表达式 * 支持数字,字母,"._#~" */ public static final String EN_NUM_CHAR_REGEX = "(" + EN_NUM_CHAR_REGEX_EXPRESSION + ")+"; /** * 英文、数字、字符正则表达式报警信息 */ public static final String EN_NUM_CHAR_REGEX_WARNING = "仅可输入字母,数字以及" + CHAR_REGEX_WARNING; /** * 邮箱格式非法提示 */ public static final String EMAIL_REGEX_WARNING = "邮箱格式错误"; /** * 身份证正则表达式 */ public static final String ID_CARD_REGEX = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; public static final String ID_CARD_OR_BLANK_REGEX = "(" +BLANK_REGEX + "|" + ID_CARD_REGEX + ")"; /** * 身份证非法提示 */ public static final String ID_CARD_REGEX_WARNING = "请输入正确身份证号"; /** * 手机号正则表达式 */ public static final String PHONE_REGEX = "^\\d{11}$"; public static final String PHONE_OR_BLANK_REGEX = "(" +BLANK_REGEX + "|" + PHONE_REGEX + ")"; /** * 手机号非法提示 */ public static final String PHONE_REGEX_WARNING = "请输入正确手机号码"; public static void main(String[] args) { String str = "12345678901"; String regEx = PHONE_REGEX; // 编译正则表达式 Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(str); // 字符串是否与正则表达式相匹配 boolean rs = matcher.matches(); System.out.println(rs); } }