簡體   English   中英

如何檢查僅包含字母(大寫和小寫)以及至少一個數字的字符串

[英]How do i check string to contain only letter(Uppercase & Lowercase) and at least one number only

我想知道如何編寫正則表達式來檢查字符串是否包含至少一個大寫字母和數字,並且不包含任何符號?

例:

String str = "%$!@asdas"

String str2 = "He110W0rLd"

我希望它拒絕str但接受str2

它給我這個吉斯 在此處輸入圖片說明

基於@anubhava注釋,請嘗試以下操作:

作為JAVA字符串:

"(?=.*[A-Z])(?=.*[0-9])[a-zA-Z\\d]+"

作為正則表達式:

(?=.*[A-Z])(?=.*[0-9])[a-zA-Z\d]+

該站點可以幫助http://www.regexplanet.com/advanced/java/index.html

您好:否

He11o:是的

:是

您好:否

3424234:否

更新:高位正則表達式會將HELLO1視為可接受的 ,因為它不會強制小寫字母,因此也添加此檢查的JAVA字符串將是:

"(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z])[a-zA-Z\\d]+"
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {

    public static void main(String[] args) {
        List<String> names = new ArrayList<String>();

        names.add("");
        names.add("%$!@asdas"); // Incorrect
        names.add("He110W0rLd");
        names.add("Techyshy");
        names.add("TechyShy123");
        names.add("Techy$hy123-"); // Incorrect

        String regex = "^[a-zA-Z0-9]+$";
        // Use "^[a-zA-Z0-9]*$"  if blank input is also a valid input. 

        Pattern pattern = Pattern.compile(regex);

        for (String name : names) {
            Matcher matcher = pattern.matcher(name);
            System.out.println(matcher.matches());
        }
    }
}

Output:

false
false
true
true
true
false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM