2017-08-25 21 views
-2

正規表現の問題をテキストボックス内で解決しようとしています。の第1数字(つまり、数百位の数字)を3桁の数字にしたいと考えています。べき以上5に等しく、そして代わりに次の数は単位で数百(我々の場合では5である)場所及び数で行わ数より大きくなければならないことより大きいの数場所正規表現で数値を検証する正規表現

有効な文字列:567789689589 無効な文字列:123556896765

+2

多くの場合、正規表現で特定の情報を抽出することが容易であるが、テスト条件抽出された情報に、正規表現だけで検証するのではなく、したがって、数字を抽出してコードで比較することができます。 – Matthias

+0

それは私の第二の考えですが、私は正規表現を使用して達成することができれば可能性を考えていた、あなたの提案に感謝したいと思います – Nyk

+1

それは_could_ regexを使用して達成される場合でも、 – 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