Regex bash script



谁能帮我理解为什么这不起作用?在bash中尝试一些简单的正则表达式。

#!/bin/bash
re="-regex_"
if [[ "$re" =~ ^[-[:alpha:]_]+$ ]]; then
        echo "Regex"
else
        echo "this is not regex"        
fi

欢呼

我假设您希望"-regex_"将在您的if语句中求值为true。

在[:alpha:]标签上没有什么可说的搜索一个以上的字母数字字符

[[ "$re" =~ ^-[[:alpha:]]+_$ ]]

如果运行它时出现错误,请确保使用的是unix行结束符(通过dos2unix运行它),并确保它被标记为可执行文件。否则,脚本为我打印"Regex"。

最新更新