串:
检查:
@ .com
我的代码
if [[ $word =~ "@" ]] then if [[ $word =~ ".com" || $word =~ ".ca" ]]
我的问题
在Linux中禁用历史logging
variables作为bash脚本中的命令
Shell脚本 – 随着时间的推移,Sudo权限丢失
GNUsorting命令的行为(使用非字母ASCII字符,如点或分号)
我怎样才能获得传递给正在运行的进程的命令行工具?
上面的例子通过了,这不是我想要的。 如何检查“@”和“.com”之间的字符(1或更多)?
“Where”命令(Windows)在path中有空格字符时不工作?
dynamic缩写为shell的扩展
资源的Linux脚本,禁用/冲刷额外的input
全局设置环境variables,无需重新启动Ubuntu
从linux shell脚本调用Rscript
你可以使用一个非常非常基本的正则表达式:
[[ $var =~ ^[az]+@[az]+.[az]+$ ]]
它看起来像这样的字符串:
at least one az char @ at least one az char . at least one az char
它可以得到像你想要的复杂,例如看电子邮件检查正则表达式与bash脚本 。
见行动
$ var="[email protected]" $ [[ $var =~ ^[az]+@[az]+.[az]+$ ]] && echo "kind of valid email" kind of valid email $ var="[email protected]" $ [[ $var =~ ^[az]+@[az]+.[az]+$ ]] && echo "kind of valid email" $
为什么不去像Perl的其他工具:
> echo "[email protected]" | perl -lne 'print $1 if(/@(.*?).com/)' gmail
glob模式是: [[ $word == ?*@?*.@(com|ca) ]]
? 匹配任何单个字符, *匹配零个或多个字符
@(p1|p2|p3|...)是与给定模式匹配的扩展匹配模式。 这要求:
shopt -s extglob
测试:
$ for word in @.com @a.ca [email protected] [email protected] [email protected]; do echo -ne "$wordt" [[ $word == ?*@?*.@(com|ca) ]] && echo matches || echo does not match done @.com does not match @a.ca does not match [email protected] does not match [email protected] matches [email protected] does not match
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。