假设我想匹配字符串".a“中的前导点
所以我打字
[ ".a“= ^。&回声“哈哈”
高可用性
[ "a“= ^&回声“哈哈”
高可用性
为什么我在这里得到同样的结果?
发布于 2013-03-17 06:35:36
可能是因为bash试图治疗“。作为一个角色,比如\n \r等等。
为了告诉你。作为两个单独的字符,尝试
[[ "a" =~ ^\\. ]] && echo ha发布于 2013-03-17 03:18:53
你需要转义点,它有超过一个句点的意义--它是正则表达式中的元字符。
[[ "a" =~ ^\. ]] && echo "ha"在另一个示例中也进行更改。
检查你的bash版本-你需要4.0或更高,我相信。
发布于 2013-03-18 06:56:26
=~在3.0之后的Bash版本之间存在一些兼容性问题。在Bash中使用=~的最安全方法是将RE模式放在var中:
$ pat='^\.foo'
$ [[ .foo =~ $pat ]] && echo yes || echo no
yes
$ [[ foo =~ $pat ]] && echo yes || echo no
no
$有关更多细节,请参见Bash页面上的E14。
https://stackoverflow.com/questions/15457083
复制相似问题