Regex 如何构造正则表达式来比较shell脚本中不区分大小写的字符串?
我将命令行参数传递给shell脚本,并将其与正则表达式进行比较。以下代码区分大小写:Regex 如何构造正则表达式来比较shell脚本中不区分大小写的字符串?,regex,string,bash,shell,Regex,String,Bash,Shell,我将命令行参数传递给shell脚本,并将其与正则表达式进行比较。以下代码区分大小写: [[ $1 =~ ^(cat)|(dog)$ ]] && echo "match" || echo "no match" 如何修改这个将忽略案例的正则表达式?我将能够通过cAt,并且它应该匹配 我想使用/Iregex标志,因为它会忽略大小写。但是如何在shell脚本中使用它呢?我尝试了[[$1=~/(cat)|(dog)/I],但脚本退出时出现语法错误 我想使用test来比较这两个字符串,而不
[[ $1 =~ ^(cat)|(dog)$ ]] && echo "match" || echo "no match"
如何修改这个将忽略案例的正则表达式?我将能够通过cAt
,并且它应该匹配
我想使用/I
regex标志,因为它会忽略大小写。但是如何在shell脚本中使用它呢?我尝试了[[$1=~/(cat)|(dog)/I]
,但脚本退出时出现语法错误
我想使用test
来比较这两个字符串,而不想使用shopt-s nocasematch
或grep
只需使用即可
shopt -s nocasematch
在你命令之前
或者
shopt -s nocasematch && [[ 'doG' =~ (cat)|(dog) ]] && echo 'hi' || echo 'no match'
Asker说他不想使用
shopt-s nocasematch
:/