zoukankan      html  css  js  c++  java
  • 封装一些正则相关的操作

    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();
    }
    }

  • 相关阅读:
    HQL查询.
    Apache solr(二).
    Apache solr(一).
    Node.js入门以及第一个helloworld程序.
    SQL优化一(SQL使用技巧)
    NodeJS安装第一个工程.
    [LeetCode] 545. Boundary of Binary Tree 二叉树的边界
    [LeetCode] 41. First Missing Positive 首个缺失的正数
    [LeetCode] 749. Contain Virus 包含病毒
    [LeetCode] 803. Bricks Falling When Hit 打击砖块掉落
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10254874.html
Copyright © 2011-2022 走看看