我写了一个正则表达式,它在某个程序(grep、sed、awk、perl、python、ruby、ksh、bash、zsh、find、emacs、vi、vim、gedit 等)中运行良好。但是当我在不同的程序(或不同的 unix 变体)中使用它时,它会停止匹配。为什么?
case "$1" in
all)
echo "$1"
;;
[a-z][a-z][a-z][a-z][a-z][a-z])
echo "$1"
;;
*)
printf 'Invalid: %s\n' "$3"
exit 1
;;
esac
Run Code Online (Sandbox Code Playgroud)
有了这个,唯一接受的输入是全部和 6 个字符。它不会接受 4 个字符或超过 6 个字符。
我想在这里做的是只允许字符,而不是数字或符号,而是无限长度。
什么是正确的语法?谢谢