![](/img/trans.png)
[英]How do I check if a Java String contains at least one capital letter, lowercase letter, and number?
[英]How regex pattern write to check at least one string and number in Java?
我有一個與正則表達式相關的問題,檢查至少一個字符串和數字,其中排除任何符號,如@!#%^&*。 我已經閱讀了很多文章,但仍然找不到作為我期望結果的正確答案。
示例:我有一個字符串,如:111AB11111
我的期望結果:如果輸入字符串
哪個java regex patter可以顯示上述情況 感謝您的寶貴時間檢查和建議 謝謝!
您可以將String#matches
與以下正則表達式模式一起使用:
^[A-Z0-9]*(?:[0-9][A-Z0-9]*[A-Z]|[A-Z][A-Z0-9]*[0-9])[A-Z0-9]*$
示例 Java 代碼:
List<String> inputs = Arrays.asList(new String[] { "111AB", "111", "AB", "111AB$" });
for (String input : inputs) {
if (input.matches("[A-Z0-9]*(?:[0-9][A-Z0-9]*[A-Z]|[A-Z][A-Z0-9]*[0-9])[A-Z0-9]*")) {
System.out.println(input + " => VALID");
}
else {
System.out.println(input + " => INVALID");
}
}
這打印:
111AB => VALID
111 => INVALID
AB => INVALID
111AB$ => INVALID
請注意,實際與String#matches
一起使用的正則表達式模式沒有前導/尾隨^/$
錨點。 這是因為matches
API 將正則表達式模式隱式應用於整個字符串。
為了解釋正則表達式模式,它只是嘗試以任何順序匹配至少有一個數字或字母的輸入。
這將實現您的目標:
^(?:[0-9]+[A-Za-z]|[A-Za-z]+[0-9])[A-Za-z0-9]*$
字母前面的數字,或數字前面的字母,后面只有字母和數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.