我需要防止字段有双下划线或空格。我希望在字段上没有匹配时发生错误,而不是尝试匹配以检查错误。我几乎有模式,但是当字符串以双下划线开头时,我似乎仍然无法阻止匹配。这就是我所拥有的:
(^(:^ \ S)(:((?:?。?!?__ | \ S)))* $)
答案 0 :(得分:0)
尝试:
^([^_\s]|(_(?!_)))*$
这应该匹配由非_
或空格的字符组成的任何字符串,以及_
但后面没有_
的任何字符。
答案 1 :(得分:0)
"(\\ s \\ s | __)"只寻找双重空格或双重下划线:
Pattern reg = Pattern.compile("(\\s\\s|__)");
//If the pattern is not found the String is valid
System.out.println( ! reg.matcher(" v a l i d e").find());
System.out.println( ! reg.matcher("__invalide").find());
System.out.println( ! reg.matcher("_valide_").find());
System.out.println( ! reg.matcher("InVALIDE ").find());
System.out.println( ! reg.matcher("in__va lid").find());
答案 2 :(得分:0)