gpt4 book ai didi

Bash 正则表达式 =~ 运算符匹配前缀

转载 作者:行者123 更新时间:2023-11-29 09:20:12 25 4
gpt4 key购买 nike

为什么这样匹配

[[ 'hithere' =~ hi* ]]

但这不是

[[ 'hithere' =~ *there ]]

最佳答案

=~ 特别是一个 regular expressions operator .如果你想匹配零个或多个字符,你需要 .* 而不仅仅是 *.

[[ 'hithere' =~ hi.* ]] && echo "Yes"
Yes

[[ 'hithere' =~ .*there ]] && echo "Yes"
Yes

虽然没有 anchor ,但即使没有通配符,匹配也会成功。

[[ '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

关于Bash 正则表达式 =~ 运算符匹配前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com