在输入字符串值中, n 或 t 或 y 可以存在,但不能超过一次。
同样的规则适用于*+-
。如果存在将发生一次。如何用RegEx实现?
它是一个日期字段,它使用各种快捷键生成日期,例如n = now; + 1 =第二天; -1 =前一天,y =当前日-1; t =现在; t + 1 =当前日期+ 1 :00小时; t + 2 =当前日期+ 2:00小时。我需要验证输入。
private static final String DATE_SHORTCUT_CHARS_ALLOWED = "nt*y+-";
public static void main(String []args){
String value = "tnt-+";//not ok
//String value = "t+";//ok
//String value = "t+-";// not ok
//String value = "nty+";//not ok
//String value = "n+n+";//not ok
//String value = "n++";//not ok
//String value = "n+";//ok
if((value.matches(".*([a-zA-Z])\\1{1,}.*")) || (value.matches(".*(\\W)\\1{1,}.*"))){
System.out.println("not ok");
}else{
System.out.println("ok");
}
}