[0-9a-fA-F]是否与[0-9a-f-A-F]相同?

时间:2012-05-10 09:40:38

标签: regex grep

这两个相同吗? [0-9a-fA-F][0-9a-f-A-F]

我在一些文本中一直在尝试使用egrep这两个正则表达式,它们似乎是等价的。 是否有一个案例他们不会返回相同的结果?

另外,在第二个表达式中,第二个-的含义是什么?为什么我需要它?我对这些简单的例子感到困惑。

3 个答案:

答案 0 :(得分:9)

第二个表达式也匹配破折号和十六进制

egrep中的

修改,您正在使用的第二个实际上是无效的:

# echo "12345678" | egrep '^[0-9a-f-A-F]+$'
egrep: Invalid range end

第二个的正确表达式以短划线结束:

[0-9a-fA-F-]

答案 1 :(得分:7)

不,这两个正则表达式并不相同。在第二个中添加字符' - '

答案 2 :(得分:3)

[0-9a-f-A-F] = [0-9a-fA-F] + -