//纯数字
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;
}
持续更新 想到要用什么再继续补充
或者有什么需要的也可以提一下 正则虽然看着麻烦 但其实很讲理