簡體   English   中英

檢查字符串是否只包含指定的字符

[英]check if a string only contains specified characters

我想檢查一個字符串只包含字母, a-zA-Z ,數字0-9和運算符(+=-*/^)

例如,以下表達式是允許的: 3 + 5(x^2)

例如,下面的表達式將容許: 3 $+ 5(x^2)

我會使用匹配功能來執行此操作嗎?

我試過了:

// contains only operators, numbers, or letters
if(!exp.matches("[(+=-*/^)a-zA-Z0-9]")) { 
    return false;
}

我也試過逃避星號,但它沒有用。

您應該已經轉義-或者將其放在角色類的開頭/結尾,否則它會創建一個范圍 請注意, [=-*]范圍無效

在此輸入圖像描述

此外,您需要一個量詞, +匹配1個或多個字符, *匹配0或更多。

采用

if(!exp.matches("[a-zA-Z0-9+=*/^()-]+")) { 
        return false;
}

如果您不需要匹配() ,請從字符類中刪除它們。

此外,由於String#matches()需要完整的字符串匹配,因此不需要在正則表達式的開頭和結尾處使用錨點。

暫無
暫無

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

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