簡體   English   中英

以0.5為增量檢查1-10的正則表達式?

[英]Regular expression that checks for 1-10 in increments of .5?

我必須創建一個正則表達式,僅允許用戶輸入1-10的范圍,並且只能以.5的增量進行輸入

基本上只允許使用1-1.5-2-2.5-3-3.5-4-4.5-5 ... 9.5-10

我會嘗試使用另一種方法來執行此操作,但是在這種情況下,我必須在程序中使用正則表達式。

到目前為止,我已經嘗試過了:

"^[1-10](.5)?$"

還有這個:

"^[1-9](.5)?[10]$"

和這個:

"^[1-9](.5)?|[10]$" 

謝謝您的幫助!

使用以下正則表達式:

"^[1-9](\\.5)?|10$"
  • . 應該轉義以匹配點。
  • 反斜杠本身應該轉義。 (這是一個Java字符串文字)。
10|[1-9](?:\.5)?

1019的數字(可選),后跟.5

如果要拒絕子字符串匹配,請在^...$之間括起來。

(鑒於它是Java,請記住在字符串中使用反斜杠!)

沒有正則表達式的替代解決方案:

public static void main(String[] args) {
    List<Double> list = new ArrayList<Double>() {
        {
            add(1.0);
            add(1.5);
            add(2.5);
            add(9.5);
            add(2.3);
            add(7.1);
            add(10.0);
        }
    };

    for (Double value : list) {
        if (value % 1 == 0 || (value - 0.5) % 1 == 0) {
            System.out.println(value);
        }
    }
}

輸出:

1.0
1.5
2.5
9.5
10.0

我覺得你很親密。 考慮對您的正則表達式進行以下較小的更改...

^[1-9](\.5)?$|^10$

真幸運!

暫無
暫無

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

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