2017-08-25 68 views
-2

我想解決一個問題與正則表達式,在一個文本框中,我希望有一個數字,這是一個3位數字,其中第一位(即在數百位數)應該爲大於或等於5,並在幾十以下數地方應該比更大數百個數放置(在我們的情況下,5)和在單元的數量地方應大於大於數十個地方正則表達式來驗證一個數字

例如有效字符串:567789689589 無效的字符串:123556896765

+2

通常更容易使用正則表達式來提取特定的信息,但試驗條件在提取的信息上,而不是通過單獨的正則表達式來驗證。所以你可以提取數字並在代碼中進行比較。 – Matthias

+0

這是我的第二個想法,但我想如果它可以實現使用正則表達式的可能性,想要感謝你的建議 – Nyk

+1

即使它可以使用正則表達式來實現,它們肯定是錯誤的工具。 – CBroe

回答

0

注:

數值比較一般應通過普通的代碼不是正則表達式來完成。 出於效率和代碼可讀性的原因。

這裏是正則表達式: [5-7][6-8](?<=5[6-8]|6[78]|78)[7-9](?<=6[7-9]|7[89]|89)

的演示:https://regex101.com/r/nQfsE9/3

細目:

\b     # Ensures starting of a number 
[5-7]     # First digit can't be higher than 7 
[6-8]     # Second digit can't be higher than 8 
(?<=5[6-8]|6[78]|78) # Lookback checks second digit larger than third 
[7-9]     # Last digit must be at least 7 
(?<=6[7-9]|7[89]|89) # Lookback checks second digit larger than third 
\b     # Ensures ending of a number 
+0

謝謝亞歷克斯,因爲我不是那麼好與正則表達式我曾想過一個替代方案肯定會考慮你的筆記之前實施修復,不知道回頭看..謝謝你的快速響應。 – Nyk