我正在编写一个脚本,它只接受某种格式的用户参数。 就像是 MSK16PCF1_SOURCE
即。正好是3个Alpha字符,后跟2或3个数字,后跟3或4个字母数字,然后是_,后跟一些alpha字符。
我写的正则表达式如下。
^[[:alpha:]]{2}[A-Z][[:digit:]]{2,3}[0,9][[:alnum:]]{2}[A-Z]?\_[[:alpha:]]*
但它不起作用。 你能说出需要改变的地方吗?
$ cat swf.sh
vari=MSK16PCF1_SOURCE
if echo "$vari" | grep -q '^[[:alpha:]]{2}[A-Z][[:digit:]]{2,3}[0,9][[:alnum:]]{2}[A-Z]?_[[:alpha:]]*'; then
echo success
fi
答案 0 :(得分:1)
这应该满足您的所有需求。
^[[:alpha:]]{3}[[:digit:]]{2,3}[[:alnum:]]{3,4}_[[:alpha:]]*$
在Basic grep中,你需要转义花括号以表示花括号作为复制量词。
^[[:alpha:]]\{3\}[[:digit:]]\{2,3\}[[:alnum:]]\{3,4\}_[[:alpha:]]*$