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