【持续更新】常用正则表达式

    //纯数字
    private static final String numberOnly = "^\\d+$";
    //空或纯数字
    private static final String numberOrNull = "^\\d*$";
    //非数字或字母
    private static final String notNumberOrLetter = "[^0-9a-zA-Z]";
    //数字或字母
    private static final String numberOrLetter = "[0-9a-zA-Z]";
    //日期 yyyy-MM-dd(允许日期不拿0补位)
    private static final String dateStyleOne = "\\d{4}\\-(((0|)[1-9])|1[0-2])\\-((0|)[1-9]|[1-2][0-9]|3[0-1])";
    //日期 yyyy-MM-dd HH:mm:ss(允许日期不拿0补位)
    private static final String dateStyleTwo = "\\d{4}\\-(((0|)[1-9])|1[0-2])\\-((0|)[1-9]|[1-2][0-9]|3[0-1])\\s+(0[1-9]|1\\d|2[0-3]):([0-5]\\d{1}):([0-5]\\d{1})";
    //日期 yyyy-MM-dd(不允许日期不拿0补位)
    private static final String dateStyleThree = "\\d{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[1-2][0-9]|3[0-1])";
    //日期 yyyy-MM-dd HH:mm:ss(不允许日期不拿0补位)
    private static final String dateStyleFour = "\\d{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(0[1-9]|1\\d|2[0-3]):([0-5]\\d{1}):([0-5]\\d{1})";
    //日期只管样式不管内容  yyyy-MM-dd
    private static final String dateStyleFive = "\\d{4}\\-\\d{2}\\-\\d{2}";
    //汉字
    private static final String chinese = "^[\\u4e00-\\u9fa5]+$";
    
    public static void main(String[] args) 
    {
        //测试哪个正则就用哪个 格式如下
        String date = "2018-06-07 01:00:00";
        boolean result = patternMatches(dateStyleFour,date);
        System.out.println("matches?"+result);
        result = patternFind(dateStyleOne,date);
        System.out.println("find?"+result);
    }
    /**
     * 完全匹配
     * @param pattern 正则表达式
     * @param str 测试字符串
     * @return
     */
    public static boolean patternMatches(String pattern,String str) 
    {
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);
        if(m.matches()) 
        {
            return true;
        }else 
        {
            return false;
        }
    }
    /**
     * 能找到
     * @param pattern 正则表达式
     * @param str 测试字符串
     * @return
     */
    public static boolean patternFind(String pattern,String str)
    {
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);
        if(m.find()) 
        {
            return true;
        }else 
        {
            return false;
        }
    }
    /**
     * 替换
     * @param pattern 正则表达式
     * @param toReplace 待转换文字
     * @param str 把正则部分转换成什么
     * @return
     */
    public static String patternReplace(String pattern,String toReplace,String str) 
    {
        return toReplace.replaceAll(pattern, str);
    }
    /**
     * 用正则切分成数组
     * @param pattern 正则表达式
     * @param str 待切分字符串
     * @return
     */
    public static String[] patternSplitToArray(String pattern,String str) 
    {
        return str.split(pattern);
    }
    /**
     * 用正则切分成数组 并转为list返回
     * @param pattern 正则表达式
     * @param str 待切分字符串
     * @return
     */
    public static List<String> patternSplittoList(String pattern,String str) 
    {
        String[] strs = str.split(pattern);
        List<String> result = new ArrayList<String>();
        for(String string:strs) 
        {
            result.add(string);
        }
        return result;
    } 

持续更新 想到要用什么再继续补充

或者有什么需要的也可以提一下 正则虽然看着麻烦 但其实很讲理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值