正则表达式操作匹配白色空间不起作用

时间:2017-12-07 08:04:08

标签: regex bash

我试图创建一个匹配文件名$f中任意数量空格的条件。但我所拥有的似乎与所有东西相匹配?

if [[ $f =~ [[:space:]]* ]]; then
    echo found a space
fi

这匹配i-have-no-spaces.jpg以及i have spaces.jpg

1 个答案:

答案 0 :(得分:2)

不要使用*,这意味着0或更多匹配。

使用

if [[ $f =~ [[:space:]] ]]; then
    echo "found a space"
fi

但是在BASH中,我建议不要使用正则表达式,只需将 glob匹配=一起使用:

if [[ $f = *[[:space:]]* ]]; then
    echo "found a space"
fi