繁体   English   中英

如何检查一个字符串是否至少包含一个字母字符?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM