微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查字符串是否仅包含A-Z,a-z和0-9?

如何解决如何检查字符串是否仅包含A-Z,a-z和0-9?

| 用模式验证字符串的最佳方法是什么?我会使用PCRE,但我不知道它是否嵌入在每个shell中以及如何使用。 例如,如何验证变量仅包含A-Z,a-Z和0-9,并且不包含空格\',\“,...?     

解决方法

        
$ [[ \"foo\" =~ ^[A-Za-z0-9]*$ ]] ; echo $?
0
$ [[ \"foo \" =~ ^[A-Za-z0-9]*$ ]] ; echo $?
1
    ,        
if `echo $VARIABLE | egrep \'[^A-Za-z0-9]\'`; then echo VARIABLE IS BAD; fi
纯壳选项
case \"$VARAIBLE\" in *[^A-Za-z0-9]*) echo VARIABLE IS BAD;; esac
    ,        
if [[ \"$VARIABLE\" =~ ^[[:alnum:]]*$ ]]; then do something; fi;
有用的资源:http://bashshell.net/regular-expressions/,http://www.gnu.org/software/bash/manual/bashref.html     ,        一种且唯一的便携式(无bash废话)方式:
`[ \"${var%%*[^A-Za-z0-9]*}\" ]`
请注意,没有启动任何外部程序,因此它比
grep
等人的程序更高效。解决方案。 请注意,字符类通常(不仅在shell中)对语言环境敏感。
var=ä
[ \"${var%%*[^a-z]*}\" ] && echo match  # prints \"match\"
因此,您可能需要考虑将语言环境临时设置为
C
或自己制作课程
`[ \"${var%%*[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*}\" ]`
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。