Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何构造正则表达式来比较shell脚本中不区分大小写的字符串?_Regex_String_Bash_Shell - Fatal编程技术网

Regex 如何构造正则表达式来比较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来比较这两个字符串,而不

我将命令行参数传递给shell脚本,并将其与正则表达式进行比较。以下代码区分大小写:

[[ $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
:/