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