STRに文字(az)(AZ)が含まれているか、文字と数字が含まれているかをテストしたいです。
その間、私はこれを持っています。
[[ "$STR" =~ [a-zA-Z0-9] ]] && echo "contain alphanumerics"
ただし、STRに数字しかない場合にも機能します。
そして、STRに文字または文字と数字が含まれている場合にのみ印刷したいと思います。」
はい
次の場合に印刷されます
gstfg523
HGFER34
JNF
GFGTVT
83bfF
印刷されない
2424
4356
632
@65$
&%^$
82472243(*
ベストアンサー1
この例で確認したい$STR
こと
- 完全英数字(文字と数字のみ)、そして
- 全体が数字(少なくとも1文字)で構成されていませんか?
次の条件を実装します。
[[ "$STR" =~ ^[[:alnum:]]*$ ]] && [[ ! "$STR" =~ ^[[:digit:]]+$ ]] && echo ok
空の文字列も許可されます。これを変更するには、+
最初のパターンで代わりに使用してください。*
テスト:
$ for STR in "" . .x .9 x x9 9 ; do
echo -en "$STR\t";
[[ "$STR" =~ ^[[:alnum:]]*$ ]] && [[ ! "$STR" =~ ^[[:digit:]]+$ ]] && echo ok || echo not ok ;
done
ok
. not ok
.x not ok
.9 not ok
x ok
x9 ok
9 not ok