Regex 猛击逃逸~tilde

Regex 猛击逃逸~tilde,regex,bash,Regex,Bash,在bash脚本中是否需要转义平铺字符 我试着用\~来逃避它,但没有用。如果删除~字符,下面的代码将按预期工作 if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then echo "skipping .. $line" continue fi 如何在上述表达式中添加波浪线字符?不要在-。将regexp更改为: if ! [[ "$line

在bash脚本中是否需要转义平铺字符

我试着用\~来逃避它,但没有用。如果删除~字符,下面的代码将按预期工作

            if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
                    echo "skipping .. $line"
                    continue
            fi

如何在上述表达式中添加波浪线字符?

不要在-。将regexp更改为:

if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then
你会没事的


请参阅以获取更多解释,为什么连字符可能是类的最后一个元素。

Bash只是感到困惑,因为
-
用于指定
[]
中的范围,但第一个或最后一个除外。这不仅是
Bash
,请参阅posit中添加的链接现在才有意义。谢谢你的链接