我需要驗證我的字符串包含一個或多個數字和一個或多個字母字符。該字符串還可以包含其他字符,如@#$ %%#。等等任何想法?Java正則表達式
1
A
回答
1
不要使用正則表達式這樣的事情 - 寫驗證:
public boolean validate(String val) {
int len=val.length();
if(len>=8) {
boolean alp=false,dgt=false;
for(int xa=0; xa<len; xa++) {
char chr=val.charAt(xa);
alp|=Character.isLetter(chr);
dgt|=Character.isDigit (chr);
if(alp && dgt) { return true; }
}
}
return false;
}
1
如果你的意思是位號碼,那麼你可以嘗試\A(?.*\d.*[a-zA-Z].*|.*[a-zA-Z].*\d.*)\z
基本上,這符合以下任一操作:
- 任何字符(或沒有),後面跟着一個數字,後跟任何字符(或無),後跟一個字母,後跟任何字符(或無)
- 任何字符(或無),後跟一個字母,後跟任何字符(或無),後跟一個數字,後跟任何字符(或無)
不要忘了在你的模式串:)你的反斜槓加倍
你能得到它也符合一般的數字(即不只是數字)通過用合適的正則表達式代替\d
,但是這個正則表達式實際上取決於你想要匹配什麼 - 更多的信息將是有用的。
0
^(?=.*\d)(?=.*\D).{8,}$
- 用8個或更多字符相匹配的字符串,幷包含一個ATLEAST數量和ATLEAST一個非數字字符。
0
\d.*[a-zA-Z]|[a-zA-Z].*\d
你沒有檢查什麼是你的第一個字母或數字,以及你的最後一封信後會發生什麼/位前
1
您可以驗證,在Java中使用下面的代碼:
if (input.matches("(?=.*\\d)(?=.*\\p{L}).+") {
// match
}
它測試它至少有一個數字和至少一個unicode字母。它使用積極的前瞻。
相關問題
- 1. 正則表達式:簡單的Java正則表達式問題
- 2. 正則表達式到Java正則表達式 - 替換和Lambdas
- 3. 正則表達式的正則表達式的Java字符串
- 4. Java的正則表達式
- 5. Java正則表達式5
- 6. Java正則表達式
- 7. Java-正則表達式滑
- 8. Java正則表達式
- 9. Java正則表達式
- 10. 正則表達式在Java
- 11. Java正則表達式
- 12. 正則表達式的Java
- 13. 正則表達式 - Java
- 14. java:正則表達式
- 15. 正則表達式 - Java的
- 16. java的正則表達式
- 17. 正則表達式java
- 18. Java正則表達式組
- 19. java正則表達式行
- 20. Java的正則表達式
- 21. Java正則表達式CodeTitle
- 22. java正則表達式
- 23. Java正則表達式
- 24. Java正則表達式
- 25. Java正則表達式
- 26. 正則表達式(正則表達式)
- 27. 正則表達式(正則表達式)
- 28. [Java腳本]正則表達式表達
- 29. 寫正則表達式表達的java
- 30. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
以示例更新。 – 2011-03-31 05:07:17