[英]String pattern which starts with # @ and can contain underscore and minus
[英]RegExp pattern for a String which contain 0 and 4-9(4 ,5,6,7,8,9)
我正在處理一個字符串。 用例是我不想要一個數字為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
那樣自動錨定模式。
匹配包含4-9和0的那些比匹配那些不包含的更容易。 所以你應該寫一個像這樣的正則表達式:
[4-90]
並調用find
,然后反轉結果:
if (!Pattern.compile("[4-90]").matcher(someString).find()) {
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.