regex - bash 逃脱 ~ 代字号

标签 regex bash

波浪字符是否需要在 bash 脚本中进行转义?

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

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

如何在上面的表达式中添加波浪字符?

最佳答案

不要把 ~ 放在 - 之后。将正则表达式更改为:

if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then

你会没事的。

查看this post有关为什么 hyphen 可能是类的最后一个元素的更多解释。

关于regex - bash 逃脱 ~ 代字号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626067/

相关文章:

regex - 获取 clojure 上正则表达式的所有匹配项

c# - 如何使用正则表达式组查找多次出现?

git - bash 始终将 git 分支显示为脏

bash - 有选择地从 'iptables -nvL' 命令输出中删除不必要的列空格吗?

c# - 如何检查正则表达式字符串是否不以特殊字符开头

regex - Notepad++ 正则表达式用不同的替换替换多个值

regex - 我想匹配任何不包括 '#' 但包括 '\#' 的内容

Bash 无意中分割命令

linux - 在 Linux shell 上终止另一个函数内的函数

regex - 如何在 Bash 中测试变量是否符合指定格式?