我需要驗證我的字符串包含一個或多個數字和一個或多個字母字符。該字符串還可以包含其他字符,如@#$ %%#。等等任何想法?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正則表達式組與。* vs正常正則表達式
- 2. 形式的Java正則表達式PHP正則表達式
- 3. Java中的正則表達式(正則表達式和語法)
- 4. 正則表達式的正則表達式的Java字符串
- 5. 將Java正則表達式轉換爲PHP正則表達式
- 6. 正則表達式:簡單的Java正則表達式問題
- 7. Java正則表達式來發現正則表達式
- 8. 的Javascript正則表達式爲Java正則表達式
- 9. 將php正則表達式轉換爲java正則表達式
- 10. Java UIMA:正則表達式中的正則表達式變量?
- 11. PHP正則表達式到Java正則表達式
- 12. 正則表達式到Java正則表達式 - 替換和Lambdas
- 13. JavaScript正則表達式到Java正則表達式
- 14. java正則表達式
- 15. Java-正則表達式滑
- 16. Java正則表達式
- 17. Java的正則表達式
- 18. Java正則表達式
- 19. Java正則表達式
- 20. Java正則表達式
- 21. 正則表達式的Java
- 22. Java正則表達式組
- 23. java:正則表達式
- 24. 正則表達式與Java
- 25. Java正則表達式
- 26. Java正則表達式replaceAll
- 27. 正則表達式Java
- 28. java正則表達式
- 29. Java正則表達式
- 30. 正則表達式在Java
以示例更新。 – 2011-03-31 05:07:17