簡體   English   中英

僅適用於大寫字母和數字的Java正則表達式

[英]Java regex for Capital letters and numbers only

我試圖在Java中做一個簡單的正則表達式,但由於某種原因它失敗了。 我想要做的就是驗證字符串是否包含大寫字母和/或數字。 因此ABC1,111和ABC將有效,但abC1不會。

所以我試着這樣做:

    if (!e.getId().matches("[A-Z0-9]")) {
        throw new ValidationException(validationMessage);
    }

我確保e.getId()有ABC1,但它仍然拋出異常。 我知道這是一個非常小而愚蠢的東西,但我無法弄明白。

使用^[A-Z0-9]+$作為匹配模式。 matches方法匹配整個字符串, [A-Z0-9]+就足夠了。

您可以嘗試以下正則表達式:

[\p{Digit}\p{Lu}]+

即:

if (!e.getId().matches("[\\p{Digit}\\p{Lu}]+")) {
    throw new ValidationException(validationMessage);
}

暫無
暫無

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

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