为什么这个简单的bash正则表达式不会返回true?

时间:2015-05-21 08:19:53

标签: regex bash

如果我在终点站[[ "0" =~ "^[0-9]+$" ]] && echo hello,我希望看到“你好”这个词

然而,没有任何东西被打印出来。我做错了什么?

2 个答案:

答案 0 :(得分:5)

您需要删除正则表达式中的双引号。也就是说,不要将你的正则表达式用双引号括起来。

[[ "0" =~ ^[0-9]+$ ]]

答案 1 :(得分:3)

应该是:

[[ "0" =~ ^[0-9]+$ ]] && echo hello

请注意,第二部分未用双引号括起来,否则它将被视为字符串" ^ [0-9] + $"而不是正则表达式。要确认这一点,请尝试:

[[ "^[0-9]+$" =~ "^[0-9]+$" ]] && echo hello