Java、Android 常用正则表达式

public class RegUtils{	
	/**
     * 判断字符串中是否包含中文
     * @param str 待校验字符串
     * @return 是否为中文
     * @warn 不能校验是否为中文标点符号
     */
    public static boolean isContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

    /**
     * 判断是否含有特殊字符
     * @param str
     * @return true为包含,false为不包含
     */
      public static boolean isSpecialChar(String str) {
         String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
         Pattern p = Pattern.compile(regEx);
         Matcher m = p.matcher(str); return m.find();
     }

    /**
     * 判断字符串是否为数字
     * @param str
     * @return
     */
    public static boolean isNumeric(String str){
        Pattern pattern = Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }

    /** 判断一个字符串是否含有数字
     *
     * @param str
     * @return
     */
    public static boolean HasNumeric(String str) {
        boolean flag = false;
        Pattern p = Pattern.compile(".*\\d+.*");
        Matcher m = p.matcher(str);
        if (m.matches()) {
            flag = true;
        }
        return flag;
    }

    /**
     * 是否仅含有数字和字母
     * @param str
     * @return
     */
    public static boolean isLetterDigit(String str) {
        String regex = "^[a-z0-9A-Z]+$";
        return str.matches(regex);
    }

    /**
     * 判断是否为数字和字母
     * @param str
     * @return
     */
    public static boolean isNumAndLetter(String str){
        Pattern pattern = Pattern.compile("[0-9A-Za-z]+");
        return pattern.matcher(str).matches();
    }
    
	 /**
     * 判断是否有表情符号
     * @param str
     * @return
     */
    public static boolean isEmoji(String str) {
        @SuppressLint("WrongConstant")
        Pattern p = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",
                Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(str);
        return m.find();
    }
	
	 /**
     * 判断是否是IP地址
     * @param str
     * @return
     */
	public static boolean isIP(CharSequence str) {
        return isMatch("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)", str);
    }

 	/**
     * 判断是否是URL
     * @param str
     * @return
     */
	public static boolean isURL(CharSequence str) {
        return isMatch("[a-zA-z]+://[^\\s]*", str);
    }

	/**
     * 判断是否是Email
     * @param str
     * @return
     */
	public static boolean isEmail(CharSequence str) {
        return isMatch("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", str);
    }

	public static boolean isMatch(String match, CharSequence str) {
        return str!= null && str.length() > 0 && Pattern.matches(match, str);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱写程序

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值