[英]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$"
.
應該轉義以匹配點。 10|[1-9](?:\.5)?
10
或1
到9
的數字(可選),后跟.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.