正規表現を使用して、文字列の特定の形式を検証しています。この文字列がゲームのルールになります。
例:ルールに従って「DX 3」はOKですが、「DX 14」もOKである可能性があります...文字列を見て、1つ以上の「数値」を見つける方法を知っているので、問題は正規表現が34にも一致し、この数はルールの「範囲」外です...
これを行うための正規表現について何か不足していますか?それともこれはまったく不可能ですか?
残念ながら、正規表現で範囲を定義する簡単な方法はありません。 1から23の範囲を使用する場合は、次のような正規表現になります。
([1-9]|1[0-9]|2[0-3])
説明:
それはそれほど短くなく、柔軟性もありません。
たとえば、1〜19を検索すると、「DX 1?[0-9]」を検索できますが、数値の境界で終わっていない場合は、すぐに醜くなり、ルールを変更することはできませんフレキシブル。
文字列を空白で分割し、x> 0およびx <24を使用することは、理解しやすく、より柔軟です。
問題を解決する正規表現を記述するために、次の形式を使用できます。範囲が0〜15であるとします。
"^DX [0-9]|1[0-5]$"
文字列を追加することで、範囲に応じて動的にすることもできます。