我想检查一个字符串是否至少有一个字母字符?正则表达式可能如下所示:
"^.*[a-zA-Z].*$"
但是,我想判断一个字符串是否至少有一个字母字符?所以我想用,就像
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",所以它们是错误的
如何实现我的目标?谢谢!
发布于 2013-01-02 23:46:25
试试这个:
#!/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-02 23:48:09
如果你想便于移植,我可以用[A-Za-z]
调用/usr/bin/grep
。
发布于 2013-01-03 00:45:14
使用支持区域设置的[:alpha:]
字符类,并使用正则表达式
[[ $str =~ [[:alpha:]] ]] && echo has alphabetic char
或者是glob样式的模式
[[ $str == *[[:alpha:]]* ]] && echo has alphabetic char
https://stackoverflow.com/questions/14130950
复制相似问题