所以这就是我目前在shell脚本中的内容。我在正则表达式上非常糟糕。
echo $1 | grep -E '^[A-Z]${3}|^[0-9]${4}|^[ABCD]$'
我需要这样的输入:
./dlchek.sh ACV-1319-A
这是一般格式: XYX-1111-A 其中XYX可以是任何字母,1111可以是任意数字,A必须是(A,B,C,D)。我顺便使用unix。我只需要检查格式是否正确,如果正确则退出代码0,如果不正确则退出。
这是预期的输出:第3行是唯一有效的,因为它遵循格式。
[you@blue final]$ ./dlcheck.sh ACV-13-A
[you@blue final]$ echo $?
1
[you@blue final]$ ./dlcheck.sh ACV-13119-A
[you@blue final]$ echo $?
1
[you@blue final]$ ./dlcheck.sh ACV-1319-A
[you@blue final]$ echo $?
0
[you@blue final]$ ./dlcheck.sh ACV-1319-Y
[you@blue final]$ echo $?
1
答案 0 :(得分:0)
^[A-Z]{3}-[0-9]{4}-[ABCD]$
那些$$在那里做什么?结局太多了。那些管子?跟我一样,使用https://regex101.com/,你每次都会学到一些东西......