【发布时间】:2013-10-11 21:03:56
【问题描述】:
所以我有这个功能
function test(){
local output="CMD[hahahhaa]"
if [[ "$output" =~ "/CMD\[.*?\]/" ]]; then
echo "LOOL"
else
echo "$output"
fi;
}
然而,在命令行中执行测试会输出 $output 而不是“LOOL”,尽管模式应该匹配 $output...
我做错了什么?
【问题讨论】:
-
您是否尝试使用
.*?作为非贪婪匹配?bash不支持 Perl 风格的运算符。正斜杠也是 Perl 匹配语法的一部分,而不是正则表达式本身的一部分。
标签: regex linux bash shell terminal