【发布时间】:2017-05-11 22:36:05
【问题描述】:
所以这就是我目前在我的 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,如果不正确则退出代码 1。
这是预期的输出:其中第 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
【问题讨论】:
标签: regex unix search string-matching