簡體   English   中英

使用正則表達式Java匹配數字和字母/數字(分隔)

[英]Match numbers and letters/numbers using regex java (by separated)

當字符串是數字或字母/數字時,匹配的正確形式是什么,例如,我有此代碼

String regexNum = "\\d*";
String regexVar = "[a-zA-Z0-9]*";

if(valor.matches(regexNum))
{
   System.out.println("It's a number");
}
if(valor.matches(regexVar))
{
   System.out.println("It's a variable");
}

例如,當我輸入“ SAL45”時,輸出為“ It's a variable”,這很好,所以當我輸入“ 45”時,輸出再次為“ It's a variable”,但我需要輸出為“ It's a number” ”,我該如何解決該錯誤?

使用“ 45”時,將同時打印兩條消息。 您只需要利用else僅顯示一條消息即可。 這是更正的代碼:-

String regexNum = "\\d*";
String regexVar = "[a-zA-Z0-9]*";

if(valor.matches(regexNum))
{
   System.out.println("It's a number");
}
else if(valor.matches(regexVar))
{
   System.out.println("It's a variable");
}

您的正則表達式不正確。

這是數字的條件:

  1. 長度必須大於零
  2. 所有字符都應該是數字

這是變量的條件:

  1. 必須以_或字母[a-zA-Z]或$開頭
  2. 其他字符應為_ ,數字[0-9],字母[a-zA-Z], $
String regexNum = "\\d+";
    String regexVar = "[a-zA-Z_$][a-zA-Z_$0-9]*";

    if (valor.matches(regexNum)) {
        System.out.println("It's a number");
    }
    if (valor.matches(regexVar)) {
        System.out.println("It's a variable");
    }

暫無
暫無

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

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