2

文字列に少なくとも 1 つのアルファベット文字が含まれているかどうかを確認したいですか? 正規表現は次のようになります。

"^.*[a-zA-Z].*$"

しかし、文字列に少なくとも1つのアルファベット文字が含まれているかどうかを判断したいですか? だから私は使いたい、のように

 if [ it contains at least one alphabetic character];then
 ...
 else
 ...
 fi

だから私は正規表現の使い方に途方に暮れています

私は試した

if [ "$x"=~[a-zA-Z]+ ];then echo "yes"; else echo "no" ;fi
or
if [ "$x"=~"^.*[a-zA-Z].*$" ];then echo "yes"; else echo "no" ;fi

x="1234" でテストすると、上記のスクリプトは両方とも "yes" の結果を出力するため、間違っています。

私の目標を達成する方法?ありがとう!

4

4 に答える 4

3

これを試して:

 #!/bin/bash

x="1234"
y="a1234"

if [[ "$x" =~ [A-Za-z] ]]; then
        echo "$x has one alphabet"
fi

if [[ "$y" =~ [A-Za-z] ]]; then
        echo "Y is $y and has at least one alphabet"
fi
于 2013-01-02T23:46:24.653 に答える
2

移植可能にしたい場合は、で呼び出し/usr/bin/grepます[A-Za-z]

于 2013-01-02T23:48:09.193 に答える
0

[:alpha:]正規表現を使用して、ロケールを尊重する文字クラスを使用します

[[ $str =~ [[:alpha:]] ]] && echo has alphabetic char

またはグロブスタイルのパターン

[[ $str == *[[:alpha:]]* ]] && echo has alphabetic char
于 2013-01-03T00:45:13.727 に答える