特定のパターンBASHに基づいてユーザー入力を検証します。

特定のパターンBASHに基づいてユーザー入力を検証します。
if ($input !~ [[:upper:-]][[:digit:]][[:digit:]][[:digit:-]][[:digit:]][[:digit:]][[:digit:]]) then
   goto error1
else
   echo $input
endif

上記のコードを使用して「P-70-90」パターンを一致させようとしましたが、動作しません。

cShellで試していますが、bash形式も可能です。

ベストアンサー1

ついに解決策を見つけました。

#!/usr/bin/bash

REGEX='^[[:upper:]]-([0-9]{2}|[0-9]{3})-([0-9]{2}|[0-9]{3})$'

CHECK="P-70-56"

if [[ ! $CHECK =~ $REGEX ]]
then
    echo "Not ok"
else 
    echo "ok"
fi

おすすめ記事