ユーザーから月の日付を取得しようとしていて、その日が有効かどうかを確認したいと思います。ユーザーは1桁の数字の先頭に0を加えなければなりません。このチェックをbash if文でどのように行うのですか?入力された数字が1から31の間であるかどうかを確認するには
ありがとうございました。
ユーザーから月の日付を取得しようとしていて、その日が有効かどうかを確認したいと思います。ユーザーは1桁の数字の先頭に0を加えなければなりません。このチェックをbash if文でどのように行うのですか?入力された数字が1から31の間であるかどうかを確認するには
ありがとうございました。
これは正規表現の仕事ではありません!
これはconditional expressionのジョブです。
ここにいくつかのコードがあります。
if [[ $number -lt 31 ]]; then
echo $number is less than 31
else
echo $number is greater than 31
fi
もちろん、日付の検証はこれよりもはるかに複雑です。 2月に何日ありますか?
ジョブには適切なツールを使用してください。正規表現はこの仕事のための正しいツールではありません。
そして、適切なツールは何ですか? –
任意のチューリング完全なプログラミング言語:)つまり、条件文を持つ任意の言語。言い換えれば、任意のプログラミング言語:P –
ただ数値比較ん:
if ((var >= 1 && var <= 31))
then
echo "Valid"
fi
はここに正規表現です: '/ ^(?[012] \ D | 3 [01])$ /';私は他の誰かにbashの部分を残します。また、 '31'は何ヶ月間も有効ではないので、少しばかげていることに注意してください。年の部分集合については' 30'でも '29'でもないので注意してください。 – Phrogz
@Phrogs:あなたの正規表現は '0'または' 00'を許可します。 1-31に制限するには、代わりに '^(0?[1-9] | [12] \ d | 3 [01])$'のようなものが必要です。 – LukeH