我正在处理一个字符串。用例是我不希望使用具有4到9或0的任何数字的字符串。
例:-
ABC0123-> Not Valid.
XYZ002456789->Not Valid.
ABC123->Valid
ABC1->Valid
我尝试了以下模式,但没有成功。
String pattern = "^[0,4-9]+$";
if(str.matches(pattern)){
//do something.
}
首先,从字符类中删除逗号。您不是在寻找逗号。
由于您不允许,请不要锚定表达式,请在字符串中的任何位置允许匹配。实际上,可以matches
为您锚定表达式,因此我们必须在不允许的字符类之前和之后有意地允许字符:
String pattern = ".*[04-9].*";
if(str.matches(pattern)){
// disallow
}
或者,您可以避免.*
使用Pattern.compile
,然后再使用结果Pattern
而不是matches
,因为它们不会像matches
这样自动锚定模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句