Bash regex =?运算符匹配前缀
发布时间:2020-12-16 01:49:09 所属栏目:安全 来源:网络整理
导读:为什么这匹配 [[ 'hithere' =~ hi* ]] 但事实并非如此 [[ 'hithere' =~ *there ]] 解决方法 =?具体是 regular expressions operator.如果你想匹配零个或多个字符,你需要.*而不是*. [[ 'hithere' =~ hi.* ]] echo "Yes"Yes[[ 'hithere' =~ .*there ]] echo "Y
为什么这匹配
[[ 'hithere' =~ hi* ]] 但事实并非如此 [[ 'hithere' =~ *there ]] 解决方法
=?具体是
regular expressions operator.如果你想匹配零个或多个字符,你需要.*而不是*.
[[ 'hithere' =~ hi.* ]] && echo "Yes" Yes [[ 'hithere' =~ .*there ]] && echo "Yes" Yes 但是,如果没有锚点,即使没有通配符,匹配也会成功. [[ 'hithere' =~ hi ]] [[ 'hithere' =~ there ]] # Add anchors to guarantee you're matching the whole phrase. [[ 'hithere' =~ ^hi.*$]] [[ 'hithere' =~ ^.*there$]] 对于模式匹配,您可以使用带有不带引号的值.这使用bash pattern matching代替,这是你(明显)期待的. [[ 'hithere' = hi* ]] && echo "Yes" Yes [[ 'hithere' = *there ]] && echo "Yes" Yes (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |