小编CLB*_*CLB的帖子

bash 正则表达式中 '(' 的十六进制代码

我在 shell 中有一个奇怪的行为。

当我尝试将正则表达式中的“_”与其十六进制代码匹配时,它可以工作,但不能与“(”。

$ regex1=$'\x5f'
$ pattern1='_'
$ if [[ $pattern1 =~ $regex1 ]]; then echo yes; else echo no; fi
yes

$ regex2=$'\x28'
$ pattern2='('
$ if [[ $pattern2 =~ $regex2 ]]; then echo yes; else echo no; fi
no
Run Code Online (Sandbox Code Playgroud)

你能解释一下这种行为吗?

shell bash regular-expression ascii hex

2
推荐指数
1
解决办法
439
查看次数

标签 统计

ascii ×1

bash ×1

hex ×1

regular-expression ×1

shell ×1