
[英]How can I determine that a string contains at least one alphabetic character?
[英]How to check whether a string has at least one alphabetic character?
我想检查一个字符串是否至少包含一个字母字符? 正则表达式可能像:
"^.*[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”,所以它们是错误的
如何实现我的目标?谢谢!
尝试这个:
#!/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
如果您想具有可移植性,可以使用[A-Za-z]
调用/usr/bin/grep
。
使用符合正则表达式的[:alpha:]
字符类
[[ $str =~ [[:alpha:]] ]] && echo has alphabetic char
或球形样式
[[ $str == *[[:alpha:]]* ]] && echo has alphabetic char
在sh脚本中,在if子句中使用grep是很常见的。 您可以在/etc/rc.d/中找到许多这样的示例。
if echo $theinputstring | grep -q '[a-zA-Z]' ; then
echo yes
else
echo no
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.