Regex 如何使bash在进行正则表达式匹配时识别字符范围?
Bash 4.3.33我注意到了这种行为。看起来正则表达式引擎无法将Regex 如何使bash在进行正则表达式匹配时识别字符范围?,regex,bash,Regex,Bash,Bash 4.3.33我注意到了这种行为。看起来正则表达式引擎无法将[]识别为元字符。有没有办法启用完全(扩展的)正则表达式支持,或者如何称之为正则表达式支持 var=bananas if [[ "$var" =~ "[as]"$ ]]; then echo 'yes' else echo 'no' fi if [[ "$var" =~ "s"$ ]]; then echo 'yes' else echo 'no' fi var=bananas] if [[ "$var" =~
[]
识别为元字符。有没有办法启用完全(扩展的)正则表达式支持,或者如何称之为正则表达式支持
var=bananas
if [[ "$var" =~ "[as]"$ ]]; then
echo 'yes'
else
echo 'no'
fi
if [[ "$var" =~ "s"$ ]]; then
echo 'yes'
else
echo 'no'
fi
var=bananas]
if [[ "$var" =~ "]"$ ]]; then
echo 'yes'
else
echo 'no'
fi
输出:
no
yes
yes
在正则表达式部分不需要使用双引号
if [[ "$var" =~ [as]$ ]]; then
所以
会产生,
yes
yes
yes
更好的说法是:你不能使用引号。或者,当您引用正则表达式元字符时,它将成为普通字符。
yes
yes
yes