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

标签 regex linux bash shell

我想检查一个字符串是否至少有一个 字母字符? 正则表达式可能是这样的:

"^.*[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

关于regex - 如何检查一个字符串是否至少包含一个字母字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14130950/

相关文章:

regex - 匹配除列出的每个单词

javascript - 生成正则表达式以匹配 url

linux - 在 PostgreSQL 函数中使用参数运行系统命令

linux - GITFLOW Linux 安装问题

bash - 如何使用 bash 编写命令行工具

javascript - 使用替换删除并在相同索引处添加标点符号

linux - mysqldump错误

linux - 在 bash 脚本中设置日期

linux - 如何从现有脚本创建 shell 脚本?

regex - 正则表达式查找字符串中模式的最后一次出现