谁能帮我理解为什么这不起作用?在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"。