我試圖修改這個正則表達式,以便讓數字大於或等於1或小於或等於10.此正則表達式允許> = 0或< = 10。整數大於0小於11的正則表達式
我有一個窗體上的文本字段等於或大於0和小於11.我可以使用IF和邏輯運算符TryParse,但我有點像正則表達式。
@"^\d$|^[1][0]$"
我試圖修改這個正則表達式,以便讓數字大於或等於1或小於或等於10.此正則表達式允許> = 0或< = 10。整數大於0小於11的正則表達式
我有一個窗體上的文本字段等於或大於0和小於11.我可以使用IF和邏輯運算符TryParse,但我有點像正則表達式。
@"^\d$|^[1][0]$"
答案是這不是你應該使用正則表達式的東西。如果有什麼事情你可以使用正則表達式來解析出號碼,然後用它們進行比較標準if (num >= 0)
等
// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
// do something, like:
if (number >= 0 || number <= 10) {
}
}
完全有道理,但我的目標是學習其他方式來做事,並且按照您的建議,我可以使用TryParse和一些操作符,但我想看看如何分配布爾值並使用Regix。 - 謝謝! – Asynchronous
@UnaverageGuy我明白了。是的,我知道你的意思,學習新的做事方式總是很有趣! –
此RegEx甚至不正確。它匹配'0'和'Int32.MaxValue'之間的數字。 –
給你:
^(1|2|3|4|5|6|7|8|9|10)$
非常明確,不能曲解,一清二楚。爲我提供更好的正則表達式。短期和神祕在這裏沒有必要
雖然我建議簡單地使用邏輯運算符來檢查,如果一個int是1到10之間,這裏有一個工作正則表達式:
^(10|[1-9])$
你可以試試這個:
^([1-9]|10)$
如果您使用的是WinForms,那麼NumericUpDown
控制MinValue
等於1
和MaxValue
等於10將做這項工作。你也不需要解析 - 屬性Value
將包含你的價值(好吧,它將是decimal
類型 - 只需將其投射到int
)。
使用NumericUpDown
的另一個原因 - 它不允許輸入除數字以外的任何內容,並且上下箭頭對用戶說 - 此控件正在等待您的號碼。
這是真的,但看看我會錯過的所有建議?有時候最簡單的方法很少教你。謝謝大家,所有的答案都很有價值! – Asynchronous
+1爲唯一合理的答案。 –
使用正則表達式來檢查從1號到10 -
^([1-9] | 10)$
你爲什麼要使用這個正則表達式? – hvd
爲什麼使用正則表達式?假設你在一個字符串中有一個數字(這是正則表達式的類型),你可以將字符串強制轉換爲一個整數 –
我已經將推理添加到了我的原始問題中。謝謝! – Asynchronous