[英]Regular expression of validating text which contains certain special characters on condition
我正在嘗試創建一個將驗證文本的正則表達式。 條件如下:
必須至少包含一個字母數字字符[A-Za-z0-9]
可以包含允許的特殊字符,例如[@#]。 這是可選的。
有效文本: A,A @,@ A,A @ a @,@@@ a等
無效文字: @,@#,a:**,A @%,AAAAAAAAA(9個字符)等
我嘗試了以下正則表達式,但部分起作用:
(?=。 [\\ w])(?=。 [@#])?。* {0,8}
在matches
方法中使用以下正則表達式。
"(?=.*?[A-Za-z0-9])[A-Za-z0-9@#]{1,8}"
(?=.*?[A-Za-z0-9])
斷言字符串必須包含至少一個字母或數字,因此匹配項中必須存在單個字符。 這就是為什么我定義[A-Za-z0-9@#]{1,8}
而不是[A-Za-z0-9@#]{0,8}
String[] check = {"A", "A@", "@A", "A@a@", "@@@a", "@", "@#", "a:**", "A@%", "AAAAAAAAA"};
for(String i: check)
{
System.out.println(i.matches("(?=.*?[A-Za-z0-9])[A-Za-z0-9@#]{1,8}"));
}
輸出:
true
true
true
true
true
false
false
false
false
false
您可以使用:
^(?=.*?[A-Za-z0-9])[@#A-Za-z0-9]{1,8}$
您可以嘗試這樣的正則表達式:
public static void main(String[] args) {
String s = "aaaaaaa";
System.out.println(s.matches("(?=.*[A-Za-z0-9])[A-Za-z0-9@#]{1,7}"));
}
O / P:是
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.