封装一些正则相关的操作

package com.opslab.util;

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

/**
* Description:
* 封装一些正则相关的操作
*/
public final class RegUtil {

/**
* Alphanumeric characters
*/
public static final String REG_ALNUM = "\p{Alnum}";
/**
* Alphabetic characters
*/
public static final String REG_ALPHA = "\p{Alpha}";
/**
* ASCII characters
*/
public static final String REG_ASCII = "\p{ASCII}";
/**
* Space and tab
*/
public static final String REG_BLANK = "\p{Blank}";
/**
* Control characters
*/
public static final String REG_CNTRL = "\p{Cntrl}";
/**
* Digits
*/
public static final String REG_DIGITS = "\p{Digit}";
/**
* SVisible characters (i.e. anything except spaces, control characters, etc.)
*/
public static final String REG_GRAPH = "\p{Graph}";
/**
* Lowercase letters
*/
public static final String REG_LOWER = "\p{Lower}";
/**
* Visible characters and spaces (i.e. anything except control characters, etc.)
*/
public static final String REG_PRINT = "\p{Print}";
/**
* Punctuation and symbols.
*/
public static final String REG_PUNCT = "\p{Punct}";
/**
* All whitespace characters, including line breaks
*/
public static final String REG_SPACE = "\p{Space}";
/**
* Uppercase letters
*/
public static final String REG_UPPER = "\p{Upper}";
/**
* Hexadecimal digits
*/
public static final String REG_XDIGIT = "\p{XDigit}";
/**
* 空白行
*/
public static final String REG_SPACE_LINE = "\n\s*\r";
/**
* 首尾空白字符
*/
public static final String REG_SPACE_POINT = "^\s*|\s*$";
/**
* HTML
*/
public static final String REG_HTML = "<(\S*?)[^>]*>.*?</\1>|<.*? />";
/**
* Email
*/
public static final String REG_EMAIL = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";
/**
* 国内固定电话
*/
public static final String REG_FIXED_TELEPHONE = "\d{3}-\d{8}|\d{4}-\d{7}";
/**
* 邮政编码
*/
public static final String REG_POSTALCODE = "[1-9]\d{5}(?!\d)";
/**
* 身份证编码
*/
public static final String REG_IDENTIFICATION_CARD = "\d{15}|\d{18}";
/**
* URL地址
*/
public static final String REG_URL = "^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$";
/**
* 移动电话
*/
public static final String REG_MOBILE_TELEPHONE = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$";
/**
* 合法的名字(字母开头,允许5-16字节,允许字母数字下划线)
*/
public static final String REG_LEGAL_ACCOUNT = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$";
/**
* i地址
*/
public static final String REG_IP = "((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)";
private static Pattern numericPattern = Pattern.compile("^[0-9\-]+$");
private static Pattern numericStringPattern = Pattern.compile("^[0-9\-\-]+$");
private static Pattern floatNumericPattern = Pattern.compile("^[0-9\-\.]+$");
private static Pattern abcPattern = Pattern.compile("^[a-z|A-Z]+$");

/**
* 判断是否数字表示
*
* @param src 源字符串
* @return 是否数字的标志
*/
public final static boolean isNumeric(String src) {
boolean return_value = false;
if (src != null && src.length() > 0) {
Matcher m = numericPattern.matcher(src);
if (m.find()) {
return_value = true;
}
}
return return_value;
}

/**
* 判断是否纯字母组合
*
* @param src 源字符串
* @return 是否纯字母组合的标志
*/
public final static boolean isABC(String src) {
boolean return_value = false;
if (src != null && src.length() > 0) {
Matcher m = abcPattern.matcher(src);
if (m.find()) {
return_value = true;
}
}
return return_value;
}


/**
* 判断是否浮点数字表示
*
* @param src 源字符串
* @return 是否数字的标志
*/
public final static boolean isFloatNumeric(String src) {
boolean return_value = false;
if (src != null && src.length() > 0) {
Matcher m = floatNumericPattern.matcher(src);
if (m.find()) {
return_value = true;
}
}
return return_value;
}

/**
* 判断字符串str是否符合正则表达式reg
*
* @param str 需要处理的字符串
* @param reg 正则
* @return 是否匹配
*/
public final static boolean isMatche(String str, String reg) {
Pattern pattern = Pattern.compile(reg);
Matcher isNum = pattern.matcher(str);
return isNum.matches();
}

/**
* 获取符合reg正则表达式的字符串在String中出现的次数
*
* @param str 需要处理的字符串
* @param reg 正则
* @return 出现的次数
*/
public final static int countSubStrReg(String str, String reg) {
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
int i = 0;
while (m.find()) {
i++;
}
return i;
}


/**
* 判断是否是符合邮箱
*
* @param email 判断的字符串
* @return 是否是符合的邮箱
*/
public final static boolean isEmail(String email) {
if (email == null || email.length() < 1 || email.length() > 256) {
return false;
}
Pattern pattern = Pattern.compile(REG_EMAIL);
return pattern.matcher(email).matches();
}
}

原文地址:https://www.cnblogs.com/chinaifae/p/10254874.html