,所以我有這個功能猛砸正則表達式匹配不工作
function test(){
local output="CMD[hahahhaa]"
if [[ "$output" =~ "/CMD\[.*?\]/" ]]; then
echo "LOOL"
else
echo "$output"
fi;
}
但是執行測試的命令行會輸出$輸出,而不是「LOOL」儘管這個模式應該匹配$輸出...
我做錯了什麼?
,所以我有這個功能猛砸正則表達式匹配不工作
function test(){
local output="CMD[hahahhaa]"
if [[ "$output" =~ "/CMD\[.*?\]/" ]]; then
echo "LOOL"
else
echo "$output"
fi;
}
但是執行測試的命令行會輸出$輸出,而不是「LOOL」儘管這個模式應該匹配$輸出...
我做錯了什麼?
您是否試圖使用'。*?'作爲非貪婪匹配? 'bash'不支持Perl風格的運算符。正斜槓也是Perl匹配語法的一部分,而不是正則表達式本身的一部分。 – chepner