欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

常用java正则表达式的工具类

程序员文章站 2023-11-16 21:20:52
本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下 import com.google.common.base.strings;...

本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下

import com.google.common.base.strings;

import java.util.regex.matcher;
import java.util.regex.pattern;

/**
 * 常用的正则表达式
 * created by tookbra on 2016/4/7.
 */
public class regexutils {
  /**
   * 判断是否是正确的ip地址
   *
   * @param ip
   * @return boolean true,通过,false,没通过
   */
  public static boolean isip(string ip) {
    if (strings.isnullorempty(ip))
      return false;
    string regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
        + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
    return ip.matches(regex);
  }
  /**
   * 判断是否是正确的邮箱地址
   *
   * @param email
   * @return boolean true,通过,false,没通过
   */
  public static boolean isemail(string email) {
    if (strings.isnullorempty(email))
      return false;
    string regex = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    return email.matches(regex);
  }
  /**
   * 判断是否含有中文,仅适合中国汉字,不包括标点
   * @param text
   * @return boolean true,通过,false,没通过
   */
  public static boolean ischinese(string text) {
    if (strings.isnullorempty(text))
      return false;
    pattern p = pattern.compile("[\u4e00-\u9fa5]");
    matcher m = p.matcher(text);
    return m.find();
  }
  /**
   * 判断是否正整数
   *
   * @param number
   *      数字
   * @return boolean true,通过,false,没通过
   */
  public static boolean isnumber(string number) {
    if (strings.isnullorempty(number))
      return false;
    string regex = "[0-9]*";
    return number.matches(regex);
  }
  /**
   * 判断几位小数(正数)
   *
   * @param decimal
   *      数字
   * @param count
   *      小数位数
   * @return boolean true,通过,false,没通过
   */
  public static boolean isdecimal(string decimal, int count) {
    if (strings.isnullorempty(decimal))
      return false;
    string regex = "^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){" + count
        + "})?$";
    return decimal.matches(regex);
  }
  /**
   * 判断是否是移动手机号码
   *
   * @param phonenumber
   *      移动手机号码
   * @return boolean true,通过,false,没通过
   */
  public static boolean ismobilephonenumber(string phonenumber) {
    if (strings.isnullorempty(phonenumber))
      return false;
    string regex = "^((13[0-9])|(15[0-9])|(18[1-9]))\\d{8}$";
    return phonenumber.matches(regex);
  }

  /**
   * 判断是否是手机号码
   *
   * @param phonenumber
   *      移动手机号码
   * @return boolean true,通过,false,没通过
   */
  public static boolean isphonenumber(string phonenumber) {
    if (strings.isnullorempty(phonenumber))
      return false;
    string regex = "^1\\d{10}$";
    return phonenumber.matches(regex);
  }
  /**
   * 判断是否含有特殊字符
   *
   * @param text
   * @return boolean true,通过,false,没通过
   */
  public static boolean hasspecialchar(string text) {
    if (strings.isnullorempty(text))
      return false;
    if (text.replaceall("[a-z]*[a-z]*\\d*-*_*\\s*", "").length() == 0) {
      // 如果不包含特殊字符
      return true;
    }
    return false;
  }

  private static boolean ischinese(char c) {
    character.unicodeblock ub = character.unicodeblock.of(c);
    if (ub == character.unicodeblock.cjk_unified_ideographs
        || ub == character.unicodeblock.cjk_compatibility_ideographs
        || ub == character.unicodeblock.cjk_unified_ideographs_extension_a
        || ub == character.unicodeblock.cjk_unified_ideographs_extension_b
        || ub == character.unicodeblock.cjk_symbols_and_punctuation
        || ub == character.unicodeblock.halfwidth_and_fullwidth_forms
        || ub == character.unicodeblock.general_punctuation) {
      return true;
    }
    return false;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。