我正在处理一个字符串。用例是我不想要一个数字为 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
而不是 来避免那些
,因为它不会像 .*
>matchesmatches
那样自动锚定模式。
关于java - 包含 0 和 4-9(4 ,5,6,7,8,9) 的字符串的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821016/