[英]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");
}
您的正則表達式不正確。
這是數字的條件:
這是變量的條件:
_
或字母[a-zA-Z]或$
開頭 _
,數字[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.